如何解决如何联接两个以上的表以获得联合结果?
我有一个这样的SQL:
SELECT
A.NAME,A.CODE,B.b_grade,C.c_grade
FROM A
JOIN B ON B.NAME = A.NAME
JOIN C ON C.NAME = A.NAME
我想获得像Veen表演那样的结果。但是SQL的结果给了我另一个。
PS:表B没有列“ c_grade”,因此在sql结果中,对于B,列“ c_grade”可以设置为零
解决方法
下面是您需要做的所有事情。
SELECT A.NAME,A.CODE,B.B_GRADE,NULL AS C_GRADE
FROM A JOIN B ON B.NAME = A.NAME
UNION ALL
SELECT A.NAME,NULL AS B_GRADE,C.C_GRADE
FROM A JOIN C ON C.NAME = A.NAME
,
您可以离开外部联接,然后检查是否有任何表匹配:
SELECT
A.NAME,B.*,C.*
FROM A
LEFT JOIN B ON B.NAME = A.NAME
LEFT JOIN C ON C.NAME = A.NAME
WHERE B.NAME != NULL OR C.NAME != NULL
,
尝试一下
SELECT *
FROM tabA
INNER JOIN tabB
ON tabA.primaryKey=tabB.tabAId
INNER JOIN tabC
ON tabA.primaryKey=tableC.tabAId
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。