sql连接两个表

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 

任何人都可以告诉我如何写一个查询并获取上面的结果,非常感谢! 我已经尝试join,左和右join。 都没有结果

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

查询您的要求

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

阅读这篇关于代码项目的原始文章将会帮助你很多: SQL连接的可视化表示 。

替代文字

查找原始的一个: 在MySQL的JOIN和OUTER JOIN之间的区别 。

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

你说你尝试了一个左连接,但没有做任何尝试—最初的逻辑尝试之一是:

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

嘿,快死了! 它给了你以后的东西。

您可以使用任何join。我写这个查询完全join。

 select A.uid,A.name,B.address from A FULL JOIN B ON A.uid = B.uid 

如果B没有任何价值,那么我想你是在空值之后,那是在A中具有相同的uid。

如果是这种情况,那么IFNULL将返回您指定的默认值,以防参数为空(在MSSQL中使用ISNULL):

 SELECT A.value, IFNULL(B.value, '') FROM A LEFT JOIN B ON A.uid = B.uid 

这将产生像这样的东西:

 test1 address1 test2 address2 test3 test4 address3