从表中选择仅包含来自另一个表的匹配数据的列

时间:2014-08-04 00:46:13

标签: sql select

我需要从表中选择2列,其中来自另一个表或单元格的匹配数据为空,

table 1 named "emp" contain emp_name ,emp_id
table 2 named "salary" contain emp_sal, emp_id

我需要创建选择查询 拥有所有emp_name,emp_id和emp_sal(仅限员工将进行销售)或为Null

立即感谢您的帮助((((update))))

首先感谢您的帮助

SELECT emp.emp_id,emp.emp_name,salary.emp_sal FROM emp LEFT JOIN salary ON emp.emp_id = salary.emp_id;

它有效,但有很多重复,我需要在白天进行此查询...

我创建另一个名为“day”的表我需要查询出现在此表中输入的日期

此表只有一列我记录((当天用户输入并保存在“day.user_day”中))

我需要链接这三个表  一起

让我们很容易将薪水改为出勤......

我需要查询日期中的所有姓名和身份证明,并告诉所有员工你有没有时间

就像我只在2014年4月8日搜索

name     id  time
john     1    04/08/2014 06:00 
man      2    null
scsv     3    04/08/2014 07:00 

2 个答案:

答案 0 :(得分:0)

您需要LEFT JOIN

SELECT * FROM emp LEFT JOIN salary ON emp.emp_id = salary.emp_id;

这将返回所有员工及其emp_sal,如果不在NULL表中,则会salary

答案 1 :(得分:0)

如果我读到的内容是正确的,那么您希望获得员工姓名和薪水,无论员工是否在salary中有条目,都要返回所有员工。如果这是正确的,这应该有效:

SELECT 
    e.emp_name, 
    e.emp_id, 
    s.emp_sal
FROM
    emp AS e
    LEFT JOIN salary AS s ON e.emp_id = s.emp_id

但是,如果您只希望员工在salary表中添加条目,请将LEFT JOIN更改为INNER JOIN