私は次の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 ごとにグループ化したいのですが、注文に 3 つの注文行があり、すべてが product_manufacturer ID を持つ場合、ID のものだけを返す必要があります。異なる product_manufacturer ID を持つ 2 つの注文明細がある場合、ID を 2 回返す必要があります。
私はPHPを使用していますが、次のような配列になりたいと思っています:
$group[manufacturer_id] = array(order_id, order_id, order_id);
編集:実際には、注文に複数の製造元 ID がある場合は、manufacturer_id = 999 を返したいです。間違いをお詫び申し上げます。
EDIT2: すべての注文のリストを作成していますが、メーカー別にリストする必要があります。そのようです:
SONY
Order 1
Order 2
Order 16
Order 99
PROSONIC
Order 3
Order 88
Order 98
後で検索できるようになるはずなので、WHERE ol.product_name LIKE '%$query' のようなものを作成する必要がありますが、後で機能するようになったら追加します。