mysql从2个不同的表中选择并返回最高价格

时间:2017-08-29 23:49:36

标签: mysql

我有一个我想弄清楚的mysql查询。

基本上我有表1 cols:房地产经纪人,价格,位置,平房,小屋

我有表2 cols:房地产经纪人,价格,地点,顶层公寓,复式

正如您所看到的,这些表格非常不同。

我需要一个查询来选择表1或表2中的所有cols,具体取决于具有最高价格的cols。例如:

    SELECT  *  FROM table1, table2 WHERE table1.price = table2.price ORDER BY price DESC LIMIT 1,1;   

2 个答案:

答案 0 :(得分:0)

如果表格非常相似,你可以UNION它们,然后对结果进行降序排序并获得更高的价格。

(SELECT * FROM table1)
UNION ALL
(SELECT * FROM table2)
ORDER BY price DESC
LIMIT 1

如果要为它们指定别名,则需要明确指定列。

重新提出你的后续问题:

如果两个表之间有一些不同的列,并且您希望保留它们,则需要远离SELECT *并明确命名所有列。

(SELECT estate agent, price, location, bungalow, cottage, NULL AS penthouse, NULL AS duplex
 FROM table1)
UNION ALL
(SELECT estate agent, price, location, NULL, NULL, penthouse, duplex
 FROM table2)
ORDER BY price DESC
LIMIT 1

您不需要在第二个子查询中提供别名,因为列名始终由UNION的第一个查询确定。即使你在第二个查询中声明了列别名,它们也会被忽略。

答案 1 :(得分:0)

试试这个: SELECT * FROM( SELECT * FROM table1 联盟 SELECT * FROM table2 订购价格desc)x 限制1;