2016-11-25 2 views
0

Я отправляю этот вопрос, пока может быть какой-то ответ, у меня возникают проблемы с моей терминологией поиска. Мой первоначальный запрос ниже дает правильное количество результатов, которые мне нужны.MySQL - присоединяйте таблицы и добавьте, если существует определенное значение

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

Моя проблема заключается в том, что у меня есть значение настраиваемого поля в другой таблице, которая существует на некоторых постах, но не все из них. Если значение поля существует, я хочу, чтобы информация отображалась в другом столбце. Когда я делаю обычный JOIN, у меня получается слишком много результатов, потому что я не уверен, как отфильтровать запрос «если существует значение».

В основном я хочу сделать что-то вроде

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

Тогда из таблицы два, которая называется wp_postmeta И ЕСЛИ meta_key = «источник» ИЗ wp_postmeta

** Затем добавить еще два столбца из Вторая таблица **

Моя самая большая проблема заключается в том, что столбец meta_key в моей второй таблице имеет много значений, привязанных к одному ID. Поэтому, если я делаю обычный простой JOIN, я возвращаюсь со слишком большим количеством строк.

Прошу прощения, если я не могу описать это более ясно, но если кто-то знает, чего я пытаюсь выполнить, любая помощь будет оценена по достоинству.

+0

Я понял, что мне нужно добавить ЛЕВЫЙ ПРИСОЕДИНЕНИЕ, чтобы выполнить то, что я хотел. Спасибо и извините за то, что вы занимаете свое время. – kaykills

ответ

0

Я понял, что мне нужно добавить ЛЕВЫЙ ПРИСОЕДИНЕНИЕ, чтобы выполнить то, что я хотел. Спасибо и извините за ваше время

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' 
Смежные вопросы