我有以下字段的表 'meta_data':MySQL的加入相同的表
- ID
- POST_ID
- meta_key
- meta_value
我想循環通過並顯示每個帖子(post_id
)的列表,該列表具有meta_key='abc'
的條目但是而不是一個meta_key='def'
基本上每個具有meta_key='abc'
進入應該後有meta_key='def'
條目。我想要生成列表,以便我可以添加缺少的meta_key='def'
條目。
我有以下字段的表 'meta_data':MySQL的加入相同的表
我想循環通過並顯示每個帖子(post_id
)的列表,該列表具有meta_key='abc'
的條目但是而不是一個meta_key='def'
基本上每個具有meta_key='abc'
進入應該後有meta_key='def'
條目。我想要生成列表,以便我可以添加缺少的meta_key='def'
條目。
爲了實現這一目標,你應該使用LEFT OUTER JOIN操作加入相同的表。
SELECT a.*
FROM meta_data a
LEFT OUTER JOIN meta_data b ON a.post_id = b.post_id AND b.meta_value = 'def'
WHERE
a.meta_value = 'abc'
AND b.id IS null
使外(左)加入到自身,通過與連接表ID爲空尋找行過濾對這些記錄是不比賽:
select t1.*
from meta_data t1
left join meta_data t2 on t2.post_id = t1.post_id and t2.meta_key='def'
where t1.meta_key='abc'
and t2.id is null
這很好 - 但你有什麼試過? –