我在3个不同的数据库中有3个表;目前,这里的目标是在三个数据库中找到重复的唯一ID,然后找到重复唯一ID的最低价格值。
目前我正在使用INNER JOIN仅在2个数据库之间进行查询...有人可以建议如何添加第三个数据库吗?
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()数?
感谢任何帮助。
谢谢,
答案 0 :(得分:1)
将查询放入子查询中,然后在主查询中使用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
答案 1 :(得分:0)
您可以使用order by
和limit
:
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
ORDER BY price
LIMIT 1;