SQL从一个表中选择不在另一个表中的项

Chr*_*and 3 php mysql sql codeigniter

我有一个带有变量$ lid的php页面,以及一个带有可变$ uid的用户...我需要从2个表中选择一些数据来填充页面.

        Table 1                          Table 2
¦----------¦----------¦    ¦----------¦----------¦----------¦
¦    qid   ¦    lid   ¦    ¦   owner  ¦   qid    ¦timestamp ¦
¦----------¦----------¦    ¦----------¦----------¦----------¦
Run Code Online (Sandbox Code Playgroud)

我需要编写一个SQL语句,从表2中获取所有内容,其中owner = $ uid如果qid尚未在table1中列出,当前页面为'$ lid.

我试过了

SELECT * FROM table_two WHERE qid != (SELECT qid FROM table_one WHERE lid = " . $lid .") AND owner = " . $uid . ";
Run Code Online (Sandbox Code Playgroud)

但没有快乐

有任何想法吗?

Red*_*ter 7

这可行:

SELECT * 
FROM table_two 
WHERE qid not in (
    SELECT qid 
    FROM table_one 
    WHERE lid = " . $lid .") 
Run Code Online (Sandbox Code Playgroud)

这可能会表现得更好:

SELECT T2.* 
FROM table_two t2
LEFT OUTER JOIN table_one T1 ON T2.QID = T1.QID 
    AND T1.LID = " . $lid ."
WHERE T1.qid IS NULL
Run Code Online (Sandbox Code Playgroud)