TABLE A >>
uid name
1 test1
2 test2
3 test3
4 test4
TABLE B >>
uid address
1 address1
2 address2
4 address3
RESULT
1 test1 address1
2 test2 address2
3 test3
4 test4 address3
任何人都可以告诉我如何编写查询并获取上面的结果,非常感谢! 我尝试过加入,左右加入。一切都没有结果。
答案 0 :(得分:17)
你可以在这两个表之间写左外连接最好的理解方法是检查下面的图像
查询您的要求
SELECT A.uid, A.name, B.address FROM A LEFT JOIN B ON A.uid=B.uid
阅读代码项目上的原始文章将对您有所帮助:Visual Representation of SQL Joins。
答案 1 :(得分:2)
SELECT A.uid, A.name, B.address FROM A LEFT OUTER JOIN B ON A.uid = B.uid
答案 2 :(得分:1)
你说你尝试过左连接但没有给出任何尝试 - 首先是逻辑尝试之一:
SELECT A.uid, A.name, B.address
FROM A
LEFT JOIN B ON A.uid=B.uid
嘿,嘿!它会告诉你你的目标。
答案 3 :(得分:1)
您可以使用任何join.I编写此查询以进行完全加入。
select A.uid,A.name,B.address from A FULL JOIN B ON A.uid = B.uid
答案 4 :(得分:1)
如果没有B的值,那么我猜你是在一个空值之后,在A中有相同的uid。
如果是这种情况,在参数为空(在MSSQL中使用ISNULL)的情况下,IFNULL将返回您指定的默认值:
SELECT A.value, IFNULL(B.value, '')
FROM A LEFT JOIN B
ON A.uid = B.uid
这会产生类似的东西:
test1 address1
test2 address2
test3
test4 address3