Mysql 当存在ID关联时,如何从多个表中获取行

Mysql 当存在ID关联时,如何从多个表中获取行,mysql,Mysql,我使用的是MySql,我的数据库结构如下所示 Table: product Structure: product_id - manufacturer_id Example #1: 30 - 9 Example #2: 31 - 0 表中没有制造商id 0 Table: manufacturer Structure: manufacturer_id - name Example #1: 9 - Canon 因此,我尝试使用下面的代码,但产品ID 9未列出 SELECT product.prod

我使用的是MySql,我的数据库结构如下所示

Table: product
Structure: product_id - manufacturer_id
Example #1: 30 - 9
Example #2: 31 - 0
表中没有制造商id 0

Table: manufacturer
Structure: manufacturer_id - name
Example #1: 9 - Canon
因此,我尝试使用下面的代码,但产品ID 9未列出

SELECT product.product_id, IF(product.manufacturer_id > 0, manufacturer.name, 'Unknown') AS manufacturer FROM product, manufacturer WHERE product.manufacturer_id=manufacturer.manufacturer_id ORDER BY product.product_id ASC
我需要得到如下输出:

Structure: product_id - manufacturer
Output:
    30 - Canon
    31 - Unknown
我搜索了很多,尝试了很多不同的方法,但没有成功。 提前感谢。

您应该像这样尝试左键连接:

SELECT product.id, ISNULL(manufacturer.name, 'Unknown name') FROM Product INNER JOIN manufacturer ON(Product.manufacturer_id = manufacturer.manufacturer_id)
SELECT op.product_id, IFNULL(om.name, 'Unknown')
FROM oc_product op
LEFT JOIN oc_manufacturer om ON op.product_id = om.manufacturer_id
ORDER BY op.product_id ASC

在测试了两个答案后,我发现这一个有效:

SELECT product.product_id, IFNULL(manufacturer.name, 'Unknown') FROM product LEFT JOIN manufacturer ON product.manufacturer_id = manufacturer.manufacturer_id ORDER BY product.product_id ASC
谢谢你们的帮助

SELECT product.product_id, IFNULL(manufacturer.name, 'Unknown') FROM product LEFT JOIN manufacturer ON product.manufacturer_id = manufacturer.manufacturer_id ORDER BY product.product_id ASC