2016-12-16 175 views
-2
我有命名为
1 Primary_Table
2)Secondary_Table

MySQL的:连接两个表

两个表)

,如下图所示: -

Primary_Table       Secondary_Table 
Sl_no Sub_id Destination    Sub_id Price 
1  1000 New York     1000 1987 
1  1001 Tokyo      1001 5679 
1  1002 London     1002 7875 
2  1003 Mumbai     1003 6789 
2  1004 Sydney     1004 7489 
2  1005 Munich     1005 6746 

在这里,我想编写一个SQL/MYSQL查询来查找关于主表中的Sl_no的最大和最小价格。

+2

你尝试过这么远吗?提示:在对数据使用聚合MIN/MAX函数之前,您需要加入这两个表。 – Boneist

+2

哪个RDBMS是为你添加了Oracle和MySQL的标签? – MT0

+0

我不能连接两行并创建一个新表,因为我正在编写一个过程,我需要一个SQL查询来获取所需的数据。 – Jhon

回答

2

您可以使用此解决方案。

SELECT 
    tb1.sub_id 
    , tb1.sl_no 
    , tb1.destination 
    , tb2.price 
FROM 
    tb1 
JOIN 
    tb2 
ON 
    tb2.sub_id = tb1.sub_id 
WHERE 
    price = (SELECT MIN(price) FROM tb2) OR price = (SELECT MAX(price) FROM tb2) 

希望这能解决您的问题。

0

这个查询将给您最大和最小的价格为每Sub_id

SELECT Sub_id,MIN(Price) AS minimum, MAX(Price) AS maximum FROM 
(SELECT p.si,p.sub,s.price FROM Primary_Table as p JOIN Secondary_Table as s ON 
p.Sub_id=s.Sub_id) AS t GROUP BY t.Sub_id 

SQLFiddle

+0

@Jhon它是为你工作吗?如果愿意,可以投票并标记为正确 – jophab