MySQL - 如果存在特定值,则连接表并添加

时间:2016-11-25 19:46:32

标签: mysql wordpress advanced-custom-fields

我发布这个问题,而某处可能有答案,我的搜索术语有问题。我在下面的初始查询中获取了我需要的正确数量的结果。

SELECT * FROM wp_posts 
WHERE post_type = 'video'
AND post_status = 'publish'
ORDER BY 'post_date'

我的问题是我在一个不同的表中有一个自定义字段值,该表存在于某些帖子上但不是全部。如果字段值存在,我希望信息显示在另一列中。当我进行正常的JOIN时,我得到的结果太多,因为我不确定如何过滤掉#34;如果值存在"查询。

基本上我想做像

这样的事情
SELECT * FROM wp_posts 
WHERE post_type = 'video'
AND post_status = 'publish'
ORDER BY 'post_date'

然后从表2中称为wp_postmeta     AND IF meta_key =' source'     来自wp_postmeta

**然后再从第二张表中添加两列**

我最大的问题是我的第二个表中的meta_key列有许多与同一ID绑定的值。所以如果我做一个普通的简单JOIN,我会回来的行太多了。

对不起,如果我不能更清楚地描述这一点,但如果有人知道我想要完成的任何事情,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

我已经想到这一点,我需要添加LEFT JOIN来完成我想要的。谢谢,抱歉占用你的时间

SELECT *
FROM wp_posts A
LEFT JOIN wp_postmeta B
ON A.ID = B.post_id
AND B.meta_key = 'sources' 
WHERE A.post_type = 'video'
AND A.post_status = 'publish'