2017-08-31 132 views
0

我在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變量設置爲重複的,我想在這裏搶二次值。但是,我得到的結果會返回多行(顯然),我怎樣才能從這個查詢MIN()號碼?

任何幫助表示讚賞。

感謝,

回答

1

把您的查詢,子查詢,然後在主查詢中使用MIN()

SELECT MIN(price) 
FROM (
    SELECT price 
    FROM db1.tb1 
     WHERE [email protected] 
    UNION ALL 
    SELECT price 
    FROM db2.tb1 
     WHERE [email protected] 
    UNION ALL 
    SELECT price 
    FROM db3.tb1 
     WHERE [email protected]) AS x 
+0

嗨@barmar, 這是否包括用於唯一標識多個匹配值排除? – 8bitmagic

0

您可以使用order bylimit

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;