我有两个表,表A和表B,如下所示:
表A:
id | name | age
---|------------|--------
1 | John | 26
2 | Michal | 30
3 | Watson | 28
4 | samson | 25
表B:
name | occupation
---------|---------------
John | job
Michal | business
watson | job
我想以这样一种方式匹配两个表,以便我可以从表 A 中获取不匹配的行"name:samson"。我应该使用哪个查询(来自 PHP 脚本)?
试试这个你可以使用NOT EXISTS
来查找不匹配的行
SELECT * FROM tableA
WHERE NOT EXISTS
(SELECT * FROM tableB
WHERE tableA.`name` = tableB.`name`)
在 PHP 中运行此查询。你会得到解决方案。
$qry = "SELECT a.* FROM tableA AS a, b.* FROM tableB AS b WHERE a.name <> b.name";
您可以使用
NOT IN
子查询:
SELECT *
FROM tableA
WHERE name NOT IN (SELECT name FROM tableB)