我在3个不同的数据库中有3个表;当前,这里的目标是在三个数据库中找到重复的唯一ID,然后找到重复的唯一ID的最低价格。

目前,我正在使用INNER JOIN在两个数据库之间进行查询...谁能建议如何添加第三个数据库?

set @a = (SELECT db1.tb1.var1 from db1.tb1
INNER JOIN db2.tb1 ON db2.tb1.var1 = db1.tb1.var1
UNION  );


另外,一旦将@a变量设置为重复变量,我想在这里获取一个辅助值。

SELECT price
 FROM db1.tb1
  WHERE asin=@a
UNION ALL
SELECT price
 FROM db2.tb1
  WHERE asin=@a
UNION ALL
SELECT  price
 FROM db3.tb1
  WHERE asin=@a


但是,我得到的结果将返回多行(显然),我如何仅从中查询MIN()号?

任何帮助表示赞赏。

谢谢,

最佳答案

将您的查询放入一个子查询,然后在主查询中使用MIN()

SELECT MIN(price)
FROM (
    SELECT price
     FROM db1.tb1
      WHERE asin=@a
    UNION ALL
    SELECT price
     FROM db2.tb1
      WHERE asin=@a
    UNION ALL
    SELECT  price
     FROM db3.tb1
      WHERE asin=@a) AS x

关于mysql - 查询选择重复项并查找最小值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45990009/

10-10 22:37