Android Sqlite Заявление Вопрос

1

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

  • 0
    NB. Это довольно простой вопрос по SQL / запросу. Я предлагаю узнать больше о запросах SQL / базы данных, прежде чем продолжить ваш проект, если у вас не было чрезвычайно краткосрочной необходимости. Или вы будете биться головой о свой стол или телефон Android, что приведет к долговременному повреждению вашей головы или телефона. Ничего из этого не хорошо. :)
  • 0
    Я довольно хорошо знаком с объединениями, но знаю, что Android не поддерживает правильные и полные объединения. Поэтому я хотел убедиться, что в Android нет особого способа сделать это.
Показать ещё 2 комментария
Теги:
sqlite3

2 ответа

1

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

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

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

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

0

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

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

SELECT (item_columns)
FROM item i JOIN box_contents bc ON i.item_id = bc.item_id

Ещё вопросы

Сообщество Overcoder
Наверх
Меню