下面,我有2张桌子。我想编写一个查询,该查询将返回每个NAME
和对应的UIN
值。如果没有UIN
值,我想返回该条目的NULL
例如,对于Samanta,这样的2个条目应为:
Bob 49638-001
Samantha NULL
我尝试过SELECT NAME JOIN EMPLOYEE_UIN.UIN INSERT "NULL" WHERE UIN = NULL
,但是没有运气。我是SQL的初学者,在SO上找不到类似的示例。
答案 0 :(得分:3)
仅使用LEFT JOIN,仅当它们符合条件标准时(本例E1.id = E2.id
),这将在左表(Employee)上显示所有元素,并在右表(Employee_unit)上显示属性。这意味着当条件不匹配时,它将为右表的属性的所有引用显示NULL值(在这种情况下为E2.UNI)。那正是您想要的。
Select E.Name, E2.UIN
FROM EMPLOYEE E LEFT JOIN EMPLOYEE_UNIT E2 ON E1.ID = E2.ID;
有关使用联接的更多信息,请参见MySQL join made easy.
答案 1 :(得分:0)
使用带有左联接的COALESCE解决您的问题
Select E.Name, COALESCE(E2.UIN,"NULL")
FROM EMPLOYEE E LEFT JOIN EMPLOYEE_UNIT E2 ON E1.ID = E2.ID;