Mysql 编写查询以打印每行中的员工姓名和UIN。如果不存在UIN,则在其位置打印NULL。输出的顺序无关紧要

Mysql 编写查询以打印每行中的员工姓名和UIN。如果不存在UIN,则在其位置打印NULL。输出的顺序无关紧要,mysql,Mysql,有两个表EMPLOYEE和EMPLOYEE\u PAN。我们必须从EMPLOYEES表中打印员工NAME,并从employeep\u PAN表中打印UINID在两个表中都用作主键。如果EMPLOYEE\u PAN表中不存在UIN,则我们必须打印NULL,而不是UINUIN是一个整数 我试过这个代码。当语句部分出现错误时,我面临一个错误。在查询中使用JOIN时,我遇到了case语句的问题。请告诉我如何将CASE语句与JOIN一起使用 SELECT UIN, NAME FROM EMPLOYEE_

有两个表
EMPLOYEE
EMPLOYEE\u PAN
。我们必须从
EMPLOYEES
表中打印员工
NAME
,并从
employeep\u PAN
表中打印UIN
ID
在两个表中都用作主键。如果
EMPLOYEE\u PAN
表中不存在
UIN
,则我们必须打印
NULL
,而不是
UIN
UIN
是一个整数

我试过这个代码。当语句部分出现错误时,我面临一个错误。在查询中使用
JOIN
时,我遇到了case语句的问题。请告诉我如何将
CASE
语句与
JOIN
一起使用

SELECT UIN, NAME 
FROM EMPLOYEE_PAN JOIN EMPLOYEES 
ON EMPLOYEES.ID = EMPLOYEE_PAN.ID 
CASE WHEN EMPLOYEE_PAN.UIN != 0 THEN EMPLOYEE_PAN.UIN END ;
你需要左键加入

SELECT EMPLOYEE_PAN.UIN, EMPLOYEES.NAME 
FROM EMPLOYEES    
LEFT JOIN EMPLOYEE_PAN  ON EMPLOYEES.ID = EMPLOYEE_PAN.ID 

left join为不匹配的键返回空值

在SELECT子句中使用case语句

SELECT 
    CASE WHEN EMPLOYEE_PAN.UIN != 0 THEN EMPLOYEE_PAN.UIN ELSE "NULL" END AS UIN, NAME 
FROM 
    EMPLOYEE_PAN JOIN EMPLOYEES 
    ON EMPLOYEES.ID = EMPLOYEE_PAN.ID;

注:我认为表中没有UIN表示UIN值为0(从您的查询)

使用左连接并删除事例声明,输出顺序应该是重要的!