mysql - SQL:完全外部连接不工作

标签 mysql sql database join

<分区>

我有两张 table ,一张是空的,另一张不是。

我知道我不能使用 Inner JOIN,因为它只会匹配 ON 部分中指定的值。在这种情况下,一张表没有任何值(value)。

SELECT  t0.hugot_id                     as hugot_id,
        t0.upvotes                      as upvotes,
        t1.comment_count                as comment_count
FROM
    hugot_votes_stats as t0
FULL OUTER JOIN
    hugot_comment_stats as t1
ON
    t0.hugot_id = t1.hugot_id

这是我使用 FULL JOIN 计算的部分。我所期望的是,如果没有找到空表(在本例中为 comment_count)将显示默认值(即:0)。

但是我得到一个错误,如您所见1064 - 您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在附近使用的正确语法

最佳答案

MySQL 没有语法关键字FULL OUTER JOIN。您必须使用 LEFT 和 RIGHT JOIN 的组合来获得完整连接。

SELECT  t0.hugot_id                     as hugot_id,
        t0.upvotes                      as upvotes,
        t1.comment_count                as comment_count
FROM
    hugot_votes_stats as t0
LEFT JOIN
    hugot_comment_stats as t1
ON
    t0.hugot_id = t1.hugot_id

UNION ALL 

SELECT  t0.hugot_id                     as hugot_id,
        t0.upvotes                      as upvotes,
        t1.comment_count                as comment_count
FROM
    hugot_votes_stats as t0
RIGHT JOIN
    hugot_comment_stats as t1
ON
    t0.hugot_id = t1.hugot_id

关于mysql - SQL:完全外部连接不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30092068/

相关文章:

mysql - 如何更好地连接 SQL 中其他表的结果

sql - 事务处理 SQL : Display two SUM() from differents tables?

database - 主设备丢失且有效转储不存在(SYBASE ASE 15.0)

mysql - MySql中如何正确处理长键约束(超过3072)?

mysql - 我可以连接本地 SQL Server 数据库作为 AWS SCT 中的源吗?

sql - BigQuery 使用新的 SQL 语法访问 CustomDimensions

php - mySQL查询只获取显示

mysql - 用户和管理员在数据库中插入数据时发生冲突的问题,请参阅下面的说明

mysql查询批量插入导致序列间隙

php - 获取类别 > 子类别 > 子子类别的父名称,最多 5 级