2015-07-13 91 views
0

我需要關於如何最好地處理這種情況的幫助。根據列值結合不同表中的mysql語句

我有3個表,說A,B,C.

表A具有柱categoryID與任一G(良好)或B(差)。

  • 如果categoryID在A爲G,關於該行的信息在表B.
  • 如果categoryID是B,關於該行的信息是在C.

例如,如果我在表A中有2條記錄。

對於第一條記錄,categoryID是G.我需要從表B中獲取第一條記錄的數據。

對於第二條記錄,categoryID是B,我需要從表C中獲取第二條記錄的數據。

我正在使用MySQL程序。我試圖用例,但似乎沒有工作。

我想在一個過程中實現這一點。表B和C具有來自表A的外鍵引用列。

+0

發佈您的程序。 –

回答

0

一種方法是兩個left join s。您的問題對於列名實際上有點模糊,但方法是這樣的:

select a.*, coalesce(b.col1, c.col1) as col1, coalesce(b.col2, c.col2) as col2 
from a left join 
    b 
    on a.categoryId = 'G' and a.bid = b.bid left join 
    c 
    on a.categoryid = 'B' and a.cid = c.cid; 
+0

正是我需要的!謝謝 – mee