一尘不染

MySQL联接相同的表

sql

我有带有以下字段的表“ meta_data”:

  • ID
  • post_id
  • meta_key
  • meta_value

我想遍历并显示EACH帖子(post_id)的列表,其中包含一个条目,meta_key='abc'没有
一个条目meta_key='def'

基本上,每个有meta_key='abc'条目的帖子都 应该
有一个meta_key='def'条目。我想生成列表,以便可以添加缺少的meta_key='def'条目。


阅读 134

收藏
2021-03-17

共1个答案

一尘不染

为此,您应该使用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.post_id IS null
2021-03-17