Php MySQL内部连接没有得到正确的结果

Php MySQL内部连接没有得到正确的结果,php,mysql,Php,Mysql,我的php中有这个查询,它似乎从我的数据库中获取了错误的数据集 $querystring = " SELECT a.*, b.itemcolour, b.itemcolourname FROM itemorders AS a INNER JOIN catalogueitemscolour AS b ON a.colourid = b.colourid WHERE a.colourid IN(SELECT

我的php中有这个查询,它似乎从我的数据库中获取了错误的数据集

$querystring = " 

SELECT a.*, 
       b.itemcolour, 
       b.itemcolourname 
FROM   itemorders AS a 
       INNER JOIN catalogueitemscolour AS b 
               ON a.colourid = b.colourid 
WHERE  a.colourid IN(SELECT colourid 
                     FROM   itemorders 
                     WHERE  orderid = 61) 

";
这是我的结果的照片

我能知道为什么它没有选择61的特定orderID吗?

您可以在下面尝试-

SELECT a.*, b.itemColour,b.itemColourName FROM itemorders 
AS a INNER JOIN CatalogueItemsColour AS b ON a.colourID = b.colourID WHERE 
a.orderID = 61 

因为您没有将条件放在
orderID
上,而是将其放在
colorID
上。您实际需要的是以下条件:
WHERE a.orderID=61

您的
WHERE
子句选择
a.colorId
colorId
为61的任何
colorId
匹配的所有行。如果要将结果限制为仅显示
orderID
为61的位置,然后显式地将其添加到主
WHERE
条款中。您选择的所有产品的colorID与orderId=61中的相同,因为您正在对colorID执行WHERE子句,子查询的orderId位于
61
,但orderId位于
61
的行的颜色可能与其他orderId相同