почему мой полный запрос на соединение не удался? - PullRequest
0 голосов
/ 09 сентября 2011

У меня есть этот запрос:

SELECT *, default_insurance.company AS company
FROM (default_insurance)
JOIN default_gruppe_rel
     ON default_gruppe_rel.uid = default_insurance.uid
JOIN default_profiles
     ON default_insurance.uid = default_profiles.id
WHERE `kontakt` = '1' 

Теперь я получаю из этого набор результатов, но если я хочу получить результаты там, где нет совпадений в соединении, и меняю этот запрос только путем изменения первого типа соединенияПОЛНЫЙ, как это

SELECT *, default_insurance.company AS company
FROM (default_insurance)
FULL JOIN default_gruppe_rel
    ON default_gruppe_rel.uid = default_insurance.uid
JOIN default_profiles
    ON default_insurance.uid = default_profiles.id
WHERE `kontakt` = '1' 

Я получаю сообщение об ошибке: у вас есть ошибка в синтаксисе SQL;обратитесь к руководству, соответствующему вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с 'FULL JOIN default_gruppe_rel ON default_gruppe_rel.uid = default_insurance.uid J' в строке 1

.ПОЛНОЕ СОЕДИНЕНИЕ неизвестно моей версии MYSQL?Это устарело?

Ответы [ 3 ]

2 голосов
/ 09 сентября 2011

MySQL не поддерживает FULL JOIN. См. Документацию по MySQL , чтобы найти несколько обходных путей, указанных в комментариях пользователя.

0 голосов
/ 09 сентября 2011
...LEFT JOIN...
UNION ALL
...RIGHT JOIN...
0 голосов
/ 09 сентября 2011

FULL JOIN работает только на некоторых СУБД ... попробуйте LEFT OUTER JOIN / LEFT JOIN, чтобы получить все записи в первой таблице и все совпадения из следующей таблицы.

Вы также можете попробовать CROSS JOIN, который на самом деле не является соединением, а скорее возвращает декартово произведение (т. Е. Все возможные комбинации) из таблиц 'join'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...