我有两张桌子:
1. posts (id, title, content, etc)
2. post_meta (id, post_id, meta_key, meta_value)
我想只使用一个查询,帖子中的所有条目以及post_meta中的条目仅使用post_meta =' x'。帖子中的一些条目在post_meta中没有对应,但我需要它们。我只用一个查询就可以做到这一点吗?
答案 0 :(得分:1)
Select a.*, b.*
From post a
left join post_meta b on (a.id = b.id and b.meta_key='x')
答案 1 :(得分:1)
select *
from post
left join
post_meta
where isNull(post_meta.meta_value)
or
post_meta.meta_value ="x"
我暂时没有做太多sql,但我知道这是可能的。我认为在你加入的桌子的任何值上查询isNull。
答案 2 :(得分:0)
select *
from posts p
left outer join post_meta pm on p.id=pm.post_id and pm.meta_key='x'
答案 3 :(得分:0)
试试这个.. 从邮寄中选择* LEVE JOIN post_meta on post.id = post_meta.post_id where post_meta.x =' x'
答案 4 :(得分:0)
这是我的解决方案。
test()
答案 5 :(得分:0)
SELECT posts.*, post_meta.*
FROM posts
LEFT JOIN post_meta
ON posts.id = post_meta.post_id WHERE post_meta.meta_value is null OR
post_meta.meta_value = 'x'
由于您希望post_meta表中对应meta_value的帖子表中的所有帖子都是' x'或meta_value不存在,这应该有效。