2014-02-17 40 views
0

假設我有3個表格;在MYSQL中連接兩個或多個不同的表格

表A與列id,價格,目錄;
tableB與列id,銷售,信息,數據;
tabeC的列編號,名稱,說明

ID列涉及所有3個表

我怎樣才能得到一個表像下面的一個MySQL的聲明?上述

 
    
     
      id 
      price 
      catalogue 
      B 
      C 
     
     
      AESDR 
      2000 
      We are mayhem 
      0 
      1 
     
     
      DRETH 
      1400 
      Let's go a fishing 
      1 
      0 
     
    

Ç持有0或1基於,如果該項目存在或不分別在tableB的表C

「的值請注意,前三列是從表A

回答

0

像這樣:

SELECT 
    TableA.id, TableA.price, TableA.catalogue, 
    IF(TableB.id IS NULL, 0, 1) AS B, 
    IF(TableC.id IS NULL, 0, 1) AS C 
FROM TableA LEFT JOIN TableB ON TableA.id = TableB.id 
    LEFT JOIN TableC ON TableA.id = TableC.id 
+0

謝謝!但是我在LEFT JOIN語句中使用了相同的條件。 – Joberror

0

LEFT JOIN是你的朋友:

SELECT 
    a.* 
    if(b.id is null, 0, 1) as B, 
    if(b.id is null, 0, 1) as C 
FROM tableA a 
LEFT JOIN tableB b ON b.id = a.id 
LEFT JOIN tableC c ON c.id = a.id