2013-02-08 3 views
1

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

Table name = counter 
ref_id INT NOT NULL 
count INT NOT NULL 

Table name = favs 
disqus_id VARCHAR(32) NOT NULL 
user_id INT NOT NULL 
dormant VAHCHAR(10) NOT NULL 

Я бегу этот запрос =>SELECT count, dormant FROM counter AS c LEFT JOIN favs AS f ON c.ref_id = f.disqus_id WHERE ref_id = 'post_5' AND user_id = '1'.

Но он не возвращает строк, если совпадение не найдено во второй таблице favs. Я хочу, чтобы он возвращал оба столбца, если результат был найден, иначе возвратите оба столбца со вторым: NULL

Как это сделать?

ответ

1

условие для пользователя на ON п

SELECT c.count, f.dormant 
FROM counter AS c 
     LEFT JOIN favs AS f 
      ON c.ref_id = f.disqus_id AND f.user_id = '1' 
WHERE c.ref_id = 'post_5' 

или, если по-прежнему doens't работу, двигаться как:

SELECT c.count, f.dormant 
FROM counter AS c 
     LEFT JOIN favs AS f 
      ON c.ref_id = f.disqus_id AND 
      f.user_id = '1' AND 
      c.ref_id = 'post_5' 
+0

Great! Спасибо @JW за ваш быстрый ответ – sanchitkhanna26

+0

это решило вашу проблему? –

+0

Yup! Это решило мою проблему – sanchitkhanna26

Смежные вопросы