如何在 phpmyadmin 中使用完全加入?

Posted

技术标签:

【中文标题】如何在 phpmyadmin 中使用完全加入?【英文标题】:How to use the full join in phpmyadmin? 【发布时间】:2020-11-20 13:31:28 【问题描述】:

我想使用完全连接加入我的两个名为inspector 和detector 且具有相同列Detection_ID 的表 我也使用了完全外连接,但仍然出现同样的错误。

错误信息 #1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在“inspector FULL JOIN detection ON inspector.D”附近使用的正确语法。D

我正在使用查询。

'SELECT * inspector FULL JOIN detection ON inspector.Detection_ID =detector.Detection_ID;'

查询或平台是否有错误?

【问题讨论】:

mysql 不支持full join。请提供样本数据和期望的结果,以便提出替代方案。 【参考方案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 是不必要的。

【讨论】:

以上是关于如何在 phpmyadmin 中使用完全加入?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 phpMyAdmin 中轻松访问所有帖子标题以从 WooCommerce 进行编辑?

如何在 PHPmyAdmin 中进行表连接

如何更改 session.gc_maxlifetime?

PHP:如何访问 phpMyAdmin / php.ini 和 extension_dir 之间的奇怪冲突

phpmyadmin导入内存错误

登录后phpmyadmin继续加载