我需要生成一个查询,从两个表中提取列,并输出每个作业的id、谁处理了它以及花费了多少小时。t1.c1=员工姓名,t2.c1=工作ID,t2.c2=工作小时数。
SELECT t2.c1, t1.c1, t2.c2 FROM t1 RIGHT JOIN t2 ON t1.c1 = t2.c1;
这将正确输出t2.c1和t2.c2,但将t1.c1留空
5n0oy7gb1#
您的问题不太清楚,但我想您需要以下内容(正如您所说的“这正确地输出了t2.c1和t2.c2,但将t1.c1留空”)
SELECT t2.c1, t1.c1, t2.c2 FROM t1 RIGHT JOIN t2 ON t1.c1 = t2.c1 union SELECT t2.c1, t1.c1, t2.c2 FROM t1 left JOIN t2 ON t1.c1 = t2.c1
wmvff8tz2#
也可以不使用任何连接来执行此操作
select T2.JobId,T1.Employeename,T2.HoursWorked from T1,T2;
zazmityj3#
如果需要t1.c1 not null值,应该使用left join
SELECT t2.c1, t1.c1, t2.c2 FROM t1 LEFT JOIN t2 ON t1.c1 = t2.c1;
或者,如果您只寻找精确匹配,您应该使用内部连接
SELECT t2.c1, t1.c1, t2.c2 FROM t1 INNER JOIN t2 ON t1.c1 = t2.c1;
3条答案
按热度按时间5n0oy7gb1#
您的问题不太清楚,但我想您需要以下内容(正如您所说的“这正确地输出了t2.c1和t2.c2,但将t1.c1留空”)
wmvff8tz2#
也可以不使用任何连接来执行此操作
zazmityj3#
如果需要t1.c1 not null值,应该使用left join
或者,如果您只寻找精确匹配,您应该使用内部连接