2011-12-14 54 views
0

Re,MySQL查詢返回特定行值取決於

我有兩個表。我想運行一個SELECT查詢在那裏我會選擇table1.*和 「虛擬」 columnX將返回:

  • YEStable1.columnB = table2.columnB
  • NO如果找不到匹配的table2
  • 發現

在此先感謝。

回答

5
SELECT 
    t1.*, 
    (CASE WHEN t2.columnB IS NOT NULL THEN 'YES' ELSE 'NO' END) as columnX 
FROM 
    table1 t1 
    LEFT OUTER JOIN 
    table2 t2 
    ON t1.columnB = t2.columnB 
1

有幾個基本的結構:

可以使用UNION來獲取這些值與不同的where子句,

你可以使用一個NVLOUTER JOIN當預期列爲空的值代入,

在一些SQL環境

,您可以使用DECODE改變返回值

在一些SQL可以使用CASE聲明。