我在MySQL DB中有2个表:
Table 1 : id, galleryname
Table 2 : galleryid, <many other fields...>
Run Code Online (Sandbox Code Playgroud)
使用PHP,我需要根据其ID来选择表1中的所有行,其中id(galleryid)未出现在表2中.
示例:表1
1, flowers
2, water
3, mountains
4, winter
Run Code Online (Sandbox Code Playgroud)
表2
3, ...
Run Code Online (Sandbox Code Playgroud)
将返回表1中的这些行
1, flowers
2, water
4, winter
Run Code Online (Sandbox Code Playgroud)
我不确定如何解决这个问题.我非常擅长MySQL的基础知识,但我怀疑这是一个JOIN或UNION,不属于我的联盟.
任何帮助表示赞赏.
Mar*_*rco 30
试试这个:
SELECT * FROM table1
WHERE id NOT IN
(SELECT galleryid FROM table2)
Run Code Online (Sandbox Code Playgroud)
要么
SELECT * FROM table1
LEFT JOIN table2
ON table1.id = table2.galleryid
WHERE table2.galleryid IS NULL
Run Code Online (Sandbox Code Playgroud)
左连接带来所有t1记录,然后过滤掉那些有t2.galleryid NULL(t2中没有记录)的记录
SELECT id, galleryname
FROM table1 AS t1
LEFT OUTER JOIN table2 AS t2 ON t1.id = t2.galleryid
WHERE t2.galleryid IS NULL
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18411 次 |
最近记录: |