[英]SQL: table with 10 fields which contain ids from other tables or 0 (inner or left join to “read” the table?)
我有11个表的数据库。
tables A
包含15个字段,其中的10个包含来自另一个表的ID或0值。 每个表都有两个字段, id
和description
。
我想查询数据库以获得在table A
ID处具有正确description
的table A
;如果ID为0,则返回null。
我必须使用什么? 联接,左联接还是内联接? 怎么样?
使用此语句选择描述并使用tablea将其余表左连接:
IF(id = 0, NULL, description)
例:
SELECT A.* , IF(A.bid = 0, NULL, B.description) , IF(A.cid = 0, NULL, C.description)
from tablea A
LEFT JOIN tableb B on A.bid = B.id
LEFT JOIN tablec C on A.cid = C.id
等等....
左联接
SELECT * FROM A
LEFT JOIN B ON (A.KEY=B.KEY)
当不可能加入时,您将得到Null
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.