2013-01-02 72 views
1

我有一張表包含我公司員工的名字和姓氏,以及一個決定他們是否仍在公司工作的字段。查找沒有匹配結果的所有行SQL

我有另一張表包含員工的任務列表 - 它還包含兩個字段與僱員的姓名( - 是的,我知道這不是一個好的結構)。

我希望能夠找到所有仍在公司工作的員工,但沒有使用MySQL查詢的任務。

任何想法?

+0

這兩個表中的任何鍵相關或不 –

+0

顯然姓氏和名字是他們的關鍵。 – AndreKR

+0

他們是相關的 - 與名字和姓氏領域。 值得一提的是我在員工表中大約有43,000行,在任務表中大約有55,000行 – Avenger

回答

1
SELECT * 
FROM employees 
WHERE still_working_for_company 
AND NOT EXISTS (
    SELECT TRUE 
    FROM tasks 
    WHERE tasks.firstname = employees.firstname 
    AND tasks.lastname = employees.lastname 
) 
+0

令人驚歎!這很好用!非常感謝你! – Avenger

0

您可以嘗試this--

select * from FirstTable where firstTable.employee='yes' and 
    firstTable.empid IN (select secondTbl.empId where firstTable.empid = secondTbl.empId) 

查詢沒有進行測試,並假設你的第二個表(任務表)包含員工數據,只有當任務分配。

0

試試這個:

SELECT e.* 
FROM emp e 
LEFT JOIN emptask et ON e.firstname = et.firstname AND e.lastname = et.lastname 
WHERE e.stillworks = 'y' AND et.taskid IS NULL 
GROUP BY e.firstname, e.lastname