Php MySQL内部连接没有得到正确的结果
我的php中有这个查询,它似乎从我的数据库中获取了错误的数据集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
$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相同