在MYSQL中连接两个或多个不同的表

在MYSQL中连接两个或多个不同的表,mysql,sql,Mysql,Sql,假设我有3张桌子 带有列id、价格、目录的表格 带有id、sales、info和data列的表B 带有列id、名称、描述的选项卡 id列关联所有3个表 如何在一条MySQL语句中获得如下表 身份证件 价格 目录 B C 艾斯德 2000 我们是大混乱 0 1. 德雷斯 1400 我们去钓鱼吧 1. 0 上面的B列和C列根据tableB和tableC表中是否分别存在该项来保存0或1的值 '请注意,前三列来自表A,如下所示: SELECT TableA.id, TableA.price,

假设我有3张桌子

带有列id、价格、目录的表格
带有id、sales、info和data列的表B
带有列id、名称、描述的选项卡

id列关联所有3个表

如何在一条MySQL语句中获得如下表

身份证件 价格 目录 B C 艾斯德 2000 我们是大混乱 0 1. 德雷斯 1400 我们去钓鱼吧 1. 0

上面的B列和C列根据tableB和tableC表中是否分别存在该项来保存0或1的值

'请注意,前三列来自表A,如下所示:

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

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

谢谢但我在两个左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