在MYSQL中连接两个或多个不同的表
假设我有3张桌子 带有列id、价格、目录的表格在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,
带有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