Просто добавьте этот столбец в список SELECT:
SELECT h.*, a.date_occupied
FROM houses h
LEFT JOIN avail a
Обновление: , как указывает Гуффа в комментариях, ваш запрос исключает все строки, которые соответствуют критериям объединения. Сначала я это пропустил. Чтобы вернуть информацию (такую как date_occupied
) о avail
записях, которые связаны с house
записями по различным критериям, вам потребуется другое объединение, чтобы раскрыть это данные:
SELECT h.*, b.date_occupied
FROM houses h
LEFT JOIN avail a ON (h.id = a.house_id
AND ( a.date_occupied = '2012-03-07'
OR a.date_occupied = '2012-03-08'
OR a.date_occupied = '2012-03-09'
OR a.date_occupied = '2012-03-10'))
LEFT JOIN avail b ON h.id = b.house_id
WHERE sleeps_count >= '1' -- These columns may need to be qualified
AND active = 1 -- if they're on the avail table
AND a.house_id IS NULL
ORDER BY h.name
Или, если вы ищете информацию из avail
записей, но просто хотите исключить записи с этими date_occupied
значениями, было бы намного проще добавить это ограничение после объединения (т. Е. В предложении WHERE! )
SELECT h.*, a.date_occupied
FROM houses h
LEFT JOIN avail a ON h.id = a.house_id
WHERE sleeps_count >= '1'
AND active = 1
AND a.date_occupied NOT IN ('2012-03-07','2012-03-08','2012-03-09','2012-03-10')
ORDER BY h.name
Если ничего из этого не достаточно, то, боюсь, я в корне неправильно понял, что вы просите - и вопрос, возможно, нуждается в разъяснении. :)