我有以下 SQL:
SELECT o.order_id, ol.product_manufacturer
FROM orders o
INNER JOIN order_lines ol
ON o.order_id = ol.order_id
WHERE o.deadline_time > UNIX_TIMESTAMP()
我也有这些表:
orders:
order_id, somefield, somefield, somefield...
order_lines:
id, order_id, product_manufacturer, somefield, somefield...
我想获取所有未超过截止日期的订单,并按 product_manufacturer 对它们进行分组,但如果一个订单有三个订单行,它们都具有 product_manufacturer id,那么它应该只返回 id 的。如果它有两个具有不同 product_manufacturer id 的订单行,那么它应该返回 id 两次,依此类推。
我正在使用 PHP,我想最终得到一个这样的数组:
$group[manufacturer_id] = array(order_id, order_id, order_id);
编辑:实际上我希望它返回manufacturer_id = 999,如果订单中有多个制造商ID。对不起这个错误。
EDIT2:我正在列出所有订单,但我必须按制造商列出它们。像这样:
SONY
Order 1
Order 2
Order 16
Order 99
PROSONIC
Order 3
Order 88
Order 98
稍后应该可以搜索,所以我将不得不制作类似 WHERE ol.product_name LIKE '%$query' 之类的东西,但稍后我会在它起作用时添加它。