我正在运行MySQL 5.0.88
,需要从两个名为articles
和的表中选择数据media
。
将图像上传到我的服务器时,我需要查询用户的所有文章,并查看媒体表(字段)中是否已经指定了路径,type="img"
以避免运行不必要的覆盖。
我曾希望只m.type
在我的查询中包含,但我无法让它工作。
我的查询如下所示:
SELECT DISTINCT a.style, a.filename, a.path, m.type
FROM articles AS a
LEFT JOIN mnedia AS m
ON a.iln = m.iln
WHERE
a.iln = id_12345
AND m.type = "img"
AND m.type IS NOT NULL
这给了我用户 id_12345 的所有文章(正确),但该type
字段始终是img
尽管媒体表只有一条记录 article abc
。
问题:
我需要如何查询,所以它返回一个用户(工作)显示type=NULL
的所有文章,这些文章没有在表格中列出media
,type="img"
对于在表格中列出的文章media
(例如abc
)?
感谢帮助!
编辑:表articles
可能包括记录:
abc
d
e
f
g
表media
可能包括
abc type=img
查询应返回:
abc type=img
d type=NULL
e type=NULL
f type=NULL
g type=NULL
编辑:
我也不介意获取所有articles
不在其中的记录media
,例如在这张图片上,第二次加入左侧(“b.Key IS NULL)
解决方案: 好的。加入两个表时,我需要检查除 user_id 之外的另一个字段。这是它的工作原理:
SELECT DISTINCT a.style, a.filename, a.path, m.type
FROM articles AS a
LEFT JOIN mnedia AS m
ON a.iln = m.iln
AND a.style= m.style
WHERE
a.iln = id_12345
AND ( m.type = "img" OR m.type IS NULL )
谢谢大家的建议!