也许写这个问题太复杂了所以我会给你关于我希望决赛桌看起来如何的所有图片:
如你所见,有3张桌子, 第1和第2表相似(有用户名和电子邮件) 但遗憾的是并非所有用户名都有电子邮件 但至少我可以修复一些用户名 并且能够在一个表中加入所有用户名,而无需电子邮件(如第3表) 我怎么能在SQL或使用查询中执行此操作? 我尝试了UNION,但它重复了“a”和“b”。
答案 0 :(得分:1)
这应该会为您提供您正在寻找的结果:
Select Coalesce(A.UserName, B.UserName) As UserName,
Coalesce(A.Email, B.Email) As Email
From TableA A
Left Join TableB B On B.UserName = A.UserName
Union
Select Coalesce(A.UserName, B.UserName) As UserName,
Coalesce(A.Email, B.Email) As Email
From TableA A
Right Join TableB B On B.UserName = A.UserName
答案 1 :(得分:0)
如果提供的用户名在两个表中都是唯一的,则需要完全加入它们。由于MySql没有FULL JOIN,您需要模仿它,请参阅https://dba.stackexchange.com/questions/101549/how-to-mimic-a-full-outer-join-using-mysql-views