Как использовать полное соединение в phpmyadmin?

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

Сообщение об ошибке № 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с 'инспектором FULL JOIN Detector ON Inspector.D

И я использую запрос.

'SELECT * инспектор FULL JOIN детектор НА инспекторе.Detection_ID = детектор.Detection_ID;'

Есть ли ошибка в запросе или платформе?


person Ehsan Malik    schedule 30.07.2020    source источник
comment
MySQL не поддерживает full join. Пожалуйста, предоставьте образцы данных и желаемые результаты, чтобы можно было предложить альтернативу.   -  person GMB    schedule 30.07.2020


Ответы (1)


MariaDB не поддерживает FULL JOIN, как следует из сообщения об ошибке. Я бы порекомендовал:

SELECT i.*, d.*
FROM inspector LEFT JOIN
     detector d
    ON i.Detection_ID = d.Detection_ID
UNION ALL
SELECT i.*, d.*
FROM detector d LEFT JOIN
     inspector i
     ON i.Detection_ID = d.Detection_ID
WHERE i.Detection_ID IS NULL;

Первый подзапрос получает все строки в inspector, независимо от того, есть ли совпадения в detector. Второй возвращает строки в detector, которых нет в inspector.

Тем не менее, я предполагаю, что столбец с именем detection_ID должен иметь все допустимые значения в detector. Это говорит о том, что FULL JOIN не нужен.

person Gordon Linoff    schedule 30.07.2020