Присоединитесь к вопросу вопроса, который я не могу понять - PullRequest
0 голосов
/ 11 сентября 2011

Итак, у меня есть три таблицы:

Table Place:  _id autoincrement not null primary key, name TEXT,place TEXT
Table Food: _id autoincrement not null primary key, food TEXT
Table Person:  _id autoincrement not null primary key, personName TEXT, PLACE_ID INTEGER NOT NULL, FOOD_ID INTEGER

Я хочу получить всю информацию о еде и месте, однако, как указано в таблице персон, для FOOD_ID может быть нулевое значение. Предположим, что база данных полностью заполнена правильно. Как я могу запросить это? Я попытался следующий запрос:

select * from Person,Food,Place where Place._id = Person.PLACE_ID and if not null Person.Food_id Food._id = Person.FOOD_ID

Но это не работает!

Любая помощь будет принята с благодарностью!

Спасибо! Jon

1 Ответ

1 голос
/ 11 сентября 2011
SELECT *
FROM Person p
INNER JOIN Place pl
    ON p.PLACE_ID = pl._id
LEFT OUTER JOIN Food f
    ON p.FOOD_ID = f._id

Помните, что соединение LEFT OUTER возвращает ВСЕ строки в левой таблице (в данном случае это Person), даже если в правой таблице нет совпадающих строк. Все значения для правой таблицы будут равны NULL.

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