MySQL Conditional Join Queries (WordPress DB) - PullRequest
       1

MySQL Conditional Join Queries (WordPress DB)

1 голос
/ 11 февраля 2011

Итак, я изучал, как заставить это работать, и не смог найти его, или действительно даже правильно искать.

Я ищу присоединение t1 к t2, где я получаю ВСЕ результаты от t1, и оно соединяется только тогда, когда значение столбца t2 равно «что-то», таблица настроена так, что в столбце t2 много элементов. Так что, если столбец t2 не равен «что-то», то просто есть другие данные (но в основном я хочу только ОДНО из каждого значения для строки t1, потому что будет максимум одна строка t2, которая соответствует каждой строке t1).

select * t1 LEFT JOIN t2 where t2.column="something" AND t1 conditions.

Буду признателен за любую помощь, таблицы - это таблицы WordPress, и то, что меня попросят сделать, будет проще сделать без знания WordPress.

- Фактическая попытка кода:

$ SELECT * FROM posts LEFT JOIN postmeta ON post_id = id WHERE post_status='publish' AND post_type='portfolio' AND meta_key='rjmeta_video'


$Table 1
$ID     Title ....
$----------------------
$5      Some post I need outside of WP

$Table 2
$meta_id  post_id   meta_key  ....
$--------------------------------
$3        5         rjmeta_video
$4        5         _edit_lock
$5        5         _edit_last

1 Ответ

4 голосов
/ 11 февраля 2011

Я считаю, что это то, что вы имеете в виду:

select distinct t1.* from t1 
LEFT JOIN t2 on [condition for join] and t2.column="something" 
where [t1 conditions].

Предполагается, что вас интересуют только поля t1.

Чего мы не знаем:

  • схемы таблиц
    • как они присоединились? t2.t1_id = t1.id?
  • t1 условия

DISTINCT, использованный выше, удалит дубликаты строк, если для объединения есть несколько совпадений

РЕДАКТИРОВАТЬ (OP комментарий комментарий):

SELECT distinct posts.* FROM posts 
LEFT JOIN postmeta ON (post_id = id and meta_key='rjmeta_video')
WHERE post_status='publish' AND post_type='portfolio'

Предполагается, что «rjmeta_video» - это то, на что вы ссылались изначально

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