Оператор соединения, но нужно получать данные только на основе того, где столбец таблицы WHERE пуст - PullRequest
0 голосов
/ 13 ноября 2008

У меня есть этот оператор запроса, и я хочу получить только записи, в которых определенный столбец пуст (volunteers_2009.venue_id)

Таблица: volunteers_2009, столбец. Я ищу, пуст ли он: venue_id

Вот текущий запрос:

SELECT volunteers_2009.id, volunteers_2009.comments, 
   volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3, 
   volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id, 
   venues.venue_name 
FROM volunteers_2009 AS volunteers_2009 
LEFT OUTER JOIN venues ON (volunteers_2009.venue_id = venues.id) 
ORDER by $order $sort

Я пытаюсь сделать это:

SELECT volunteers_2009.id, volunteers_2009.comments, 
   volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3, 
   volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id, 
   venues.venue_name 
FROM volunteers_2009 AS volunteers_2009 
LEFT OUTER JOIN venues ON (volunteers_2009.venue_id = venues.id) 
ORDER by $order $sort 
WHERE volunteers_2009.venue_id == ''

Как бы я перечислял в таблице только записи с пустым столбцом (venue_id) (volunteers_2009)?

Ответы [ 2 ]

4 голосов
/ 13 ноября 2008

Под пустым вы имеете в виду ноль? Если поле venue_id может содержать нули, вы можете сравнить, используя оператор is, например:

WHERE volunteers_2009.venue_id is null
2 голосов
/ 13 ноября 2008

Предложение WHERE вышло из строя в вашем втором запросе. Он должен идти перед предложением ORDER BY.

Кроме того, я не думаю, что у вас есть места с пустым идентификатором. Возможно, вы действительно хотите это:

SELECT volunteers_2009.id, volunteers_2009.comments, 
    volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3, 
    volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id, 
    venues.venue_name 
FROM volunteers_2009 
LEFT JOIN venues ON venue_id = venues.id
WHERE venues.id IS NULL
ORDER BY $order $sort

Это вернет только записи волонтеров_2009, которые не соответствуют ни одному месту.

Или это:

SELECT volunteers_2009.id, volunteers_2009.comments, 
    volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3, 
    volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id, 
    venues.venue_name 
FROM venues
LEFT JOIN volunteers_2009 ON volunteers_2009.venue_id = venues.id
WHERE volunteers_2009.venue_id IS NULL
ORDER BY $order $sort

чтобы найти места без добровольцев.

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