Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询联接以从两个表中选择不匹配的行_Mysql_Sql_Join_Mysql5 - Fatal编程技术网

MySQL查询联接以从两个表中选择不匹配的行

MySQL查询联接以从两个表中选择不匹配的行,mysql,sql,join,mysql5,Mysql,Sql,Join,Mysql5,我有两张桌子,如下所示 我试过这个问题 SELECT users.* FROM users WHERE users.username NOT IN( SELECT users_approval.username FROM users_approval WHERE users_approval.approved_id = "3B888F52-50BC-11E2-B08B-99E5B2CADDF7" ) AND users.role_type = "student" 得

我有两张桌子,如下所示



我试过这个问题

SELECT users.* FROM users 
WHERE users.username NOT IN(
     SELECT users_approval.username FROM users_approval 
     WHERE users_approval.approved_id = "3B888F52-50BC-11E2-B08B-99E5B2CADDF7"
) AND users.role_type = "student"
得到了下面的结果


是否有任何方法可以使用JOIN获取与上述相同的结果集

我很感激你的帮助

SELECT users.* 
FROM   users 
       LEFT JOIN users_approval b
          ON users.username = b.username AND
             b.approved_id = "3B888F52-50BC-11E2-B08B-99E5B2CADDF7"
WHERE  users.role_type = "student" AND
       b.approved_id IS NULL

假设您在第二个表中有user_id作为外键,它可以用来连接,而不是使用username来连接表

awesome。。!我现在对连接的工作方式有了一些想法:P。非常感谢
SELECT users.* FROM users 
WHERE users.username NOT IN(
     SELECT users_approval.username FROM users_approval 
     WHERE users_approval.approved_id = "3B888F52-50BC-11E2-B08B-99E5B2CADDF7"
) AND users.role_type = "student"
user_id   |   username        |  first_name |   role_type
-------------------------------------------------------------
4         |   testuser4       |  testu4     |    student
5         |   testuser5       |  testu5     |    student
-------------------------------------------------------------
SELECT users.* 
FROM   users 
       LEFT JOIN users_approval b
          ON users.username = b.username AND
             b.approved_id = "3B888F52-50BC-11E2-B08B-99E5B2CADDF7"
WHERE  users.role_type = "student" AND
       b.approved_id IS NULL
SELECT 
    users.* 
FROM users as u
LEFT JOIN users_approval as ua ON  ua.id = u.id
WHERE u.role_type = "student" AND ua.approved_id IS NULL