Mysql 我的问题需要帮助吗
我的查询需要帮助:Mysql 我的问题需要帮助吗,mysql,sql,Mysql,Sql,我的查询需要帮助: SELECT P.ID, P.CategoryID, P.Name, P.SupplierID, p.UnitPrice, p.UnitsInStock, pp.PicturePath FROM Products P JOIN ProductPhoto PP ON p.ID=PP.ProductID WHERE P.CategoryID='2'; 此查询给我2个结果,但它必须给我4个结果,因为有4个数据的categoryID='2' select * from Pr
SELECT
P.ID,
P.CategoryID,
P.Name,
P.SupplierID,
p.UnitPrice,
p.UnitsInStock,
pp.PicturePath
FROM Products P JOIN ProductPhoto PP ON p.ID=PP.ProductID WHERE P.CategoryID='2';
此查询给我2个结果,但它必须给我4个结果,因为有4个数据的categoryID='2'
select * from Products;
我也从这个查询中进行了检查,有4个数据的categoryID='2'
select * from Products;
您将需要一个
左联接
:
SELECT P.ID,
P.CategoryID,
P.Name,
P.SupplierID,
p.UnitPrice,
p.UnitsInStock,
pp.PicturePath
FROM Products P
LEFT JOIN ProductPhoto PP
ON p.ID=PP.ProductID
WHERE P.CategoryID='2'
LEFT JOIN
将返回所有产品
,即使ProductPhoto
表中没有匹配的行。内部联接将只返回两个表中匹配的行
如果您需要学习JOIN
语法的帮助,那么这里有一个很棒的
尝试使用左联接,可能没有与产品匹配的productionPhoto记录。请注意,您正在ProductID上对ProductPhoto进行内部联接,该联接与产品内的ID相等
如果两个表中只有两个categoryID为2的匹配行,那么您将看到返回的就是这些
将查询更改为左联接,然后查看是否返回了4行。如果是,那么您的上述查询是正确的