sql join两个表

时间:2012-02-07 06:33:21

标签: mysql sql tsql left-join

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

任何人都可以告诉我如何编写查询并获取上面的结果,非常感谢! 我尝试过加入,左右加入。一切都没有结果。

5 个答案:

答案 0 :(得分:17)

你可以在这两个表之间写左外连接最好的理解方法是检查下面的图像

查询您的要求

SELECT A.uid, A.name, B.address FROM A LEFT JOIN B ON A.uid=B.uid 

阅读代码项目上的原始文章将对您有所帮助:Visual Representation of SQL Joins

alt text

Difference between JOIN and OUTER JOIN in MySQL找到原始的。

答案 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