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