2012-05-28 2 views
1

У меня есть некоторый код (наследуемого), который выбирает строку из таблицы «члены», а также некоторые детали из строки из таблицы «изображение»:MySQL выбрать из более чем одной таблицы

SELECT members.main,members.id,image.main,image.thumb,bio, 
altered,members.title,author 
FROM members,image WHERE members.main = image.id 

Это прекрасно работает в все случаи, за исключением тех, где поле «members.main» пусто. Есть ли способ сохранить те же функциональные возможности этого кода (т. Е. Сопоставить элемент с изображением), в то время как он обслуживает случаи, когда «members.main» пуст?

Я попытался

WHERE members.main = image.id OR members.main = '' 

но вернулся искаженные результаты.

Спасибо,

G

ответ

3

Используйте левое внешнее соединение:

SELECT 
    members.main, 
    members.id, 
    image.main, 
    image.thumb, 
    bio, 
    altered, 
    members.title, 
    author 
FROM members 
LEFT JOIN image 
ON members.main = image.id 

LEFT JOIN возвращает все строки из левой таблицы (членов) или не соответствуют они строку в правый стол (изображение).