在 SQL 中使用外部联接

Using Outer joins in SQL

通过分析以下 图表,我必须进行查询以列出所有产品 (product) 及其相关类别 ( product_category) 如果他们有的话。否则,显示类别的值 (null)

仅显示 PRODUCT_NAMECATEGORY_NAME 列。

示例输出:

PRODUCT_NAME CATEGORY_NAME
ProForm 6.0 RT Fitness
Wilwood 260-11179 Automotive
HC-SR04 null

所以这是我的查询:

SELECT PRODUCT.name as PRODUCT_NAME, PRODUCT_CATEGORY.name as CATEGORY_NAME
FROM PRODUCT 
   JOIN PRODUCT_CATEGORY ON PRODUCT.product_category_id = PRODUCT_CATEGORY.product_category_id

但我不确定我的查询,确实我认为我应该使用外连接。

你差不多明白了。您将需要使用 左外连接 来获得您要查找的结果:

SELECT PRODUCT.name as PRODUCT_NAME, PRODUCT_CATEGORY.name as CATEGORY_NAME
FROM PRODUCT LEFT JOIN PRODUCT_CATEGORY 
ON PRODUCT.product_category_id = PRODUCT_CATEGORY.product_category_id

左外部联接将 return 左侧的所有记录 table (PRODUCT)。如果右侧 table (PRODUCT_CATEGORY) 中没有连接记录,那么右侧 table 中的所有列都将被 return 编辑为 NULL记录。