Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我的问题需要帮助吗_Mysql_Sql - Fatal编程技术网

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行。如果是,那么您的上述查询是正确的