我正在研究一个包含子查询的mySQL查询的轻微复杂(至少对我而言)并不诚实.
SELECT `products`.`id`, `product`.`price`,
( SELECT `value` FROM (`productValues`)
WHERE `productValues`.`product` = 'product.id'
) as values
FROM (`products`) WHERE`product`.`active` = 1
Run Code Online (Sandbox Code Playgroud)
目前的结果如下:
Array
(
[0] => Array
(
[id] => 1
[active] => 1
[price] => 1000
[values] =>
)
)
Run Code Online (Sandbox Code Playgroud)
我想要的是values元素也成为一个数组,其中Values表中的所有元素都匹配(WHERE productValues.product = product.id).
我究竟做错了什么?
我不确定你是否可以像这样返回子查询.解决方案是在子查询中使用GROUP_CONCAT将所有值连接到字符串.然后,在结果中,您可以使用将此字符串拆分为数组explode.
更新:子查询只能匹配1行
源:http://dev.mysql.com/doc/refman/5.0/en/subquery-errors.html