[英]Display null in the column where condition doesn't satisfy
I have two tables 我有两张桌子
TRAINING_EMPLOYEE TRAINING_EMPLOYEE
TRAINING_DEPARTMENT TRAINING_DEPARTMENT
From both the tables, i want all the columns except DEPARTMENT_ID from the TRAINING_EMPLOYEE and column DEPARTMENT_NAME from the TRAINING_DEPARTMENT 从两个表中,我都希望除TRAINING_EMPLOYEE中的 DEPARTMENT_ID和TRAINING_DEPARTMENT中的 DEPARTMENT_NAME列之外的所有列
I am doing this 我正在做这个
SELECT TE.EMPLOYEE_ID,TE.FIRST_NAME,TE.LAST_NAME,TO_CHAR(HIRE_DATE ,'DD-
MON-YYYY')HIRE_DATE,TD.DEPARTMENT_NAME FROM training_employee TE,
training_department TD WHERE TE.DEPARTMENT_ID=TD.DEPARTMENT_ID;
And i am getting this 我正在得到这个
But i do want all the 4 rows of TRAINING_EMPLOYEE and null on the Department_name if "TRAINING_EMPLOYEE.DEPARTMENT_ID<>TRAINING_DEPARTMENT.DEPARTMENT_ID" 但是,如果“ TRAINING_EMPLOYEE.DEPARTMENT_ID <> TRAINING_DEPARTMENT.DEPARTMENT_ID”,我确实希望所有4行TRAINING_EMPLOYEE都在Department_name上为null
You want a left join
. 您想要
left join
。 And, it is hard because you are using archaic join syntax that doesn't really support it. 而且,这很困难,因为您使用的是不真正支持它的过时的联接语法。 Here is a simple rule going forward: never use a comma in the
from
clause. 这是一条简单的规则:不要在
from
子句中使用逗号。 Always use explicit join
syntax: 始终使用显式
join
语法:
SELECT TE.EMPLOYEE_ID, TE.FIRST_NAME, TE.LAST_NAME,
TO_CHAR(HIRE_DATE, 'DD-MON-YYYY') as HIRE_DATE, TD.DEPARTMENT_NAME
FROM training_employee TE LEFT JOIN
training_department TD
ON TE.DEPARTMENT_ID = TD.DEPARTMENT_ID;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.