Android Sqlite Заявление Вопрос - PullRequest
1 голос
/ 08 августа 2010

Допустим, у меня есть база данных с таблицами, называемыми box, item и box_contents, и я хочу получить любой элемент, содержащийся в таблице box_content (все элементы, но отбрасывать те, которых нет в таблице box_contents). Какой будет правильный синтаксис sqllite для этого?

Ответы [ 2 ]

1 голос
/ 08 августа 2010

Зависит от вашей схемы, то есть, как ваша таблица "box_content" обозначает, что она "содержит" определенный элемент. Например, если для этого используется столбец «ItemId», который является внешней ссылкой на первичный ключ таблицы «item» «Id», то

SELECT item.*
FROM item
JOIN box_content ON (box_content.ItemId = item.Id)

будет работать нормально (при условии, что вы действительно имеете в виду именно то, что говорите, то есть хотите, чтобы элементы содержали в любом месте в таблице "box_content", и что ваше упоминание еще одной таблицы "box" фактически полностью не имеет значения).

Но, если ваша схема полностью отличается (или то, что вы на самом деле хотите сделать, сильно отличается от того, что вы сказали), то, конечно же, и необходимый SQL. Как насчет редактирования вашего Q, чтобы показать операторы CREATE TABLE и (если нужно) какие-нибудь комментарии к ним ...?

0 голосов
/ 08 августа 2010

Вы захотите сделать то, что называется соединением между двумя таблицами.

У вас будет что-то вроде:

SELECT (item_columns)
FROM item i JOIN box_contents bc ON i.item_id = bc.item_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...