Как создать запрос, чтобы получить все записи из одной таблицы и заполнить информацию о поле из второй таблицы оператором where? - PullRequest
0 голосов
/ 16 мая 2011

У меня есть две таблицы. Один из них называется prem и содержит все идентификаторы, существующие в системе, и JimsQueryByColl , который содержит большинство идентификаторов с различной информацией. Я пытаюсь создать один запрос, который будет включать в себя все идентификаторы из Prem и все записи из JimsQueryByColl , где JimsQueryByColl.Collector = "Frederick Road" . Текущий запрос, который у меня есть, выглядит следующим образом, но только дает последнюю часть информации (без идентификаторов из прем, которые не отображаются в списке идентификаторов с Фредерик-роуд в столбце коллектора):

ВЫБРАТЬ Prem.meter_miu_id, JimsQueryByColl. *, Prem.longitude, Prem.latitude
ОТ Prem LEFT JOIN JimsQueryByColl ON Prem.meter_miu_id = JimsQueryByColl. [MIU ID]
ГДЕ (((JimsQueryByColl.Collector) = "Фредерик Дорога "))

Обычно левое соединение достигло бы того, чего я хочу, но оператор where делает это там, где идентификаторы, которые будут содержать пустую информацию для всех, кроме поля * Prem.meter_miu_id *, не включены. Я пытался добавить « или JimsQueryByColl.Collector IS NULL » в инструкцию WHERE, но это не привело к правильному результату.

Текущий метод двух запросов, который у меня есть для получения нужной информации, называется FredrickRoad и Query3:

FredrickRoad-

ВЫБРАТЬ JimsQueryByColl. * ОТ JimsQueryByColl ГДЕ (((JimsQueryByColl.Collector) = "Фредерик Дорога "))

Вслед за Query3 -

SELECT Prem.meter_miu_id, JimsQueryByColl. *, Prem.longitude, Prem.latitude ОТ Prem LEFT JOIN JimsQueryByColl ON Prem.meter_miu_id = JimsQueryByColl. [MIU ID] ГДЕ (((JimsQueryByColl.Collector) = "Фредерик Дорога "));

Но я бы хотел сделать это за один шаг, если это возможно. Я надеюсь, что я написал это ясно, и если кому-то нужно разъяснение, просто спросите.

Текущее решение

ВЫБРАТЬ Prem.meter_miu_id, JimsQueryByColl. *, Prem.longitude, Prem.latitude
В FrederickRoad ОТ Prem LEFT JOIN JimsQueryByColl ON (Prem.meter_miu_id = JimsQueryByColl. [MIU ID]
AND JimsQueryByColl.Collector = "Фредерик
Дорога ")

Это позволяет обойти странную ошибку / ошибку, которую я получаю с запросом, поскольку он помещает его в таблицу и больше не обрабатывает запрос напрямую. Однако я хотел бы знать, что вызывает проблемы, с которыми я сталкиваюсь.

1 Ответ

2 голосов
/ 16 мая 2011

Попробуйте:

SELECT Prem.meter_miu_id, JimsQueryByColl.*, Prem.longitude, Prem.latitude
FROM Prem LEFT JOIN JimsQueryByColl 
ON (Prem.meter_miu_id = JimsQueryByColl.[MIU ID] 
AND JimsQueryByColl.Collector="Frederick Road")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...