JOIN запрос с оператором IN - PullRequest
       2

JOIN запрос с оператором IN

2 голосов
/ 07 октября 2011

пост имеет много комментариев,

Я хочу выбрать только те сообщения, которые имеют комментарии с определенным идентификатором (например: (2, 4, 6, 7))

Я пробовал следующий SQL-запрос:

ВЫБРАТЬ wp_posts. * ОТ wp_posts

СЛЕДУЮЩЕЕ СОЕДИНЕНИЕ wp_comments ON wp_comments.comment_ID IN (2, 4, 6, 7);

Запрос возвращает мне странные результаты.

Может кто-нибудь сказать маме, что не так с этим запросом? заранее спасибо

Ответы [ 3 ]

3 голосов
/ 07 октября 2011

Попробуйте это:

SELECT P.* 
FROM wp_posts AS P
INNER JOIN wp_comments AS C ON C.post_ID = P.post_ID
WHERE C.comment_ID IN (2, 4, 6, 7);

Измените имена столбцов для post_id в ON C.post_ID = P.post_ID, как требуется; Я не уверен в точных именах столбцов WordPress.

0 голосов
/ 07 октября 2011

Было бы лучше, если бы мы могли видеть вашу схему. Я думаю, что вы ищете что-то вроде этого

SELECT wp_posts.* FROM wp_posts
LEFT JOIN wp_comments ON wp_comments.postid = wp_posts.id
WHERE wp_comments.comment_ID IN (2, 4, 6, 7);
0 голосов
/ 07 октября 2011

Это не условие JOIN, оно должно быть в предложении WHERE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...