Объединение 3 таблиц в Sqlite и не получение ожидаемого результата - PullRequest
1 голос
/ 13 марта 2020

Я понимаю, что подобный вопрос был опубликован, однако моя проблема не является ошибкой, скорее, отсутствие желаемого результата. Я пытаюсь объединить 3 таблицы, каждая из которых содержит 10 000 наблюдений, и объединить их в одну таблицу, однако, когда я использую внутреннее соединение, наблюдения уменьшаются до чуть более 4000. Я понимаю, что ВНУТРЕННЕЕ СОЕДИНЕНИЕ по сути является пересечением, но я ожидаю 10000 наблюдений и на основании моего кода я не вижу, как это происходит. Вот мой код:

ВЫБРАТЬ * ИЗ ПРИМ.

ВНУТРЕННЕЕ СОЕДИНЕНИЕ Цены на цены. ПИД = Характеристики.пид

ВНУТР. 1007 *

;

ХАРАКТЕРИСТИКИ

|| Property_Id || || Кровати || || Ванны || || Type_ID ||

ЦЕНЫ

|| Цена || || Год || || Property_ID ||

РАСПОЛОЖЕНИЕ

|| Type_ID || || X координата || || Y координат ||

Они представляют таблицы, я не включил числа из-за проблем с форматированием, но, как вы можете себе представить, числа, содержащиеся в Property_id и Type_id, одинаковы для всех столбцов независимо от таблицы, то, что я хотел бы, это одна таблица с каждым из соответствующих столбцов, содержащих 10000 строк, я проверил значения NA на R, и все они имеют одинаковую длину.

1 Ответ

1 голос
/ 13 марта 2020

Если вы хотите сохранить все characteristics - даже если в других таблицах нет совпадений - тогда используйте left join:

SELECT *
FROM Characteristics c LEFT JOIN
     Prices p
     ON p.pid = c.pid LEFT JOIN
     Locations l
     ON l.tid = c.tid;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...