Мои навыки поиска в Google подвели меня, и я ни в коем случае не эксперт по базам данных! У меня есть очень простая схема базы данных, которая выглядит следующим образом:
схема базы данных http://bit.ly/adeUVL
properties_id в таблице CANDY - это внешний ключ для id в таблице EXPENSIVE_PROPERTIES. Properties_id устанавливается только , если конфета стоит дорого. Если это дорого, то соответствующие значения в таблице EXPENSIVE_PROPERTIES будут заполнены.
Когда я хочу получить список конфет, я в основном хочу сделать это:
- запросить все свойства в таблице CANDY, такие как имя и цвет
- дополнительно получить дорогие свойства, если значение properties_id не равно нулю
Раньше я делал два запроса, но это глупо, так как я должен иметь возможность создать представление, которое объединяет все свойства в одну таблицу и просто оставляет другие поля пустыми, если нет соответствующего идентификатор в таблице EXPENSIVE_PROPERTIES.
Может кто-нибудь сказать мне, как создать это представление в SQLite? Я предполагаю, что это возможно, но не смог понять это из документов :
Элементы IF NOT EXISTS, похоже, не имеют ничего общего с существованием определенного значения поля.
UPDATE
На вопрос был дан ответ, но одна вещь, которую я нахожу странной, заключается в том, что в некоторых случаях я вижу повторяющиеся записи. Я использую SQLite Administrator, и когда я выполняю оператор CREATE VIEW и просматриваю вкладку результатов, я получаю уникальные записи. Если я просто сделаю инструкцию SELECT, я получу дублирующиеся строки. Если я создаю представление, а затем делаю SELECT * FROM myview; Я также вижу дубликаты строк. Может кто-нибудь пролить некоторый свет на это? Должен ли я создать новый вопрос?
ОБНОВЛЕНИЕ № 2
Не берите в голову, я нашел свою ошибку - у меня было две таблицы после FROM, что вызывает дублирование.