SQL в Access 2007 - синтаксическая ошибка - PullRequest
0 голосов
/ 29 июля 2010

Я использую Access 2007 для создания запроса SQL для объединения двух таблиц.Я был в состоянии сделать это, но тогда у меня нет строк, где столбцы из второй таблицы равны NULL;У меня просто есть строки, где есть информация во второй таблице, которая соответствует.Я пытался сделать LEFT JOIN, но Access не понравилось это.Вместо этого я пытаюсь создать лучшее дополнение 'join / on' к моему запросу (см. Ниже), но теперь я получаю "Синтаксическая ошибка в предложении FROM".У вас есть идеи, что я делаю не так?

SELECT *
FROM dbo_table1 AS t1
JOIN dbo_table2 AS t2
ON (
     (t1.id = t2.id)   // where the two ids match so the info in table 2 match with table 1
     OR 
     ((SELECT COUNT(*) FROM dbo_table2 AS t3 WHERE t1.id = t3.id)=0)  // there is no match but I want the row with NULL for the values from the second table
   );

Ответы [ 2 ]

0 голосов
/ 29 июля 2010

Вы можете иметь внешнее / перекрестное соединение с оператором WHERE (a.id = b.id или b.id равен нулю).

Или СОЮЗ, первый из которых a.id = b.id, второй, где b.id равен нулю.

(В зависимости от ваших точных требований)

0 голосов
/ 29 июля 2010

Если вы хотите, чтобы все строки из dbo_table1, независимо от того, есть ли соответствующая строка в dbo_table2, используйте LEFT JOIN.Access должен принять это:

SELECT *
FROM
    dbo_table1 AS t1
    LEFT JOIN dbo_table2 AS t2
    ON t1.id = t2.id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...