2014-02-17 125 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