Mysql SQL语句中的外部联接语法错误“

Mysql SQL语句中的外部联接语法错误“,mysql,sql,Mysql,Sql,有人能帮我理解为什么这个查询不起作用吗 修改查询以列出所有产品及其关联的类别product\u category(如果有)。否则,不要为该类别显示空值 它不断向我显示这个错误: SQL语句中的语法错误 选择P.NAME作为产品名称,选择PC.NAME作为类别名称 从乘积P 外部[*]在P.PRODUCT\U ID=PC.PRODUCT\U CATEGORY\U ID上作为PC加入产品\U类别 ;SQL语句: -下面是SQL请求 选择P.name作为产品名称,选择PC.name作为类别名称 从乘积

有人能帮我理解为什么这个查询不起作用吗

修改查询以列出所有产品及其关联的类别product\u category(如果有)。否则,不要为该类别显示空值

它不断向我显示这个错误:

SQL语句中的语法错误 选择P.NAME作为产品名称,选择PC.NAME作为类别名称 从乘积P 外部[*]在P.PRODUCT\U ID=PC.PRODUCT\U CATEGORY\U ID上作为PC加入产品\U类别 ;SQL语句: -下面是SQL请求 选择P.name作为产品名称,选择PC.name作为类别名称 从乘积P 在P.PRODUCT\U id=PC.PRODUCT\U CATEGORY\U id上将外部连接产品\U类别作为PC [42000-200] 非常感谢

嗯,我不知道在任何数据库管理系统中,外部连接是否是完全[OUTER]连接的同义词……因此,外部连接可能应为完全外部连接或完全连接

但无论如何,这里不需要完全联接。完全联接将列出没有产品的类别。您需要左联接

SELECT p.name AS product_name,
       pc.name AS category_name
       FROM product AS p
            LEFT JOIN product_category AS pc
                      ON p.product_id = pc.product_category_id;
外部联接在ANSI SQL或我使用过的任何实现中都不是有效的语法

这里有一个很好的参考:

你可以说连接或内部连接。这是同义词

你可以说左连接或左外连接。这是同义词

你可以说右连接或右外连接。这是同义词

你可以说完全连接或完全外部连接。这是同义词

你现在应该看到这个模式了。单词INNER和OUTER是可选的关键字

不带LEFT、RIGHT或FULL的外部联接不是选择之一


为了让招聘人员满意,我建议您使用左外连接。

您使用的是什么RDBMS?我不知道。我已经通过了codingame.com的评估,但我认为他们使用的是MYSQL。您需要知道,因为错误将特定于RDBMS。可能重复:外连接不是MYSQL的东西:如前所述,“外连接”不是什么东西e需要一名新的招聘人员。谢谢。我已经测试了你的答案,效果很好。谢谢你的推荐信,我将在未来的准备工作中使用它:
SELECT p.name AS product_name,
       pc.name AS category_name
       FROM product AS p
            LEFT JOIN product_category AS pc
                      ON p.product_id = pc.product_category_id;