我有以下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標識,那麼它只應返回標識標識。如果它有兩個具有不同product_manufacturer id的訂單行,則它應該返回id兩次,以此類推。
我使用PHP,我想用這樣一個數組,結束了:
$group[manufacturer_id] = array(order_id, order_id, order_id);
編輯:其實我想它返回MANUFACTURER_ID = 999,如果有在多個廠商的IDS訂購。對不起,這個錯誤。
編輯2:我列出所有訂單,但我必須按製造商列出它們。像這樣:
SONY
Order 1
Order 2
Order 16
Order 99
PROSONIC
Order 3
Order 88
Order 98
後來,它應該是可以搜索的,所以我將不得不做出類似WHERE ol.product_name LIKE「%$查詢」,但我會補充說,後來,當它的工作原理。
選擇不同... – Strawberry
@Strawberry - SELECT DISTINCT不會得到我的order_id,如果在ORDER_LINES不同 –
@UlrikMcArdle - 你所要求的'這聽起來像所有orders'你想要簡單的數據。但是接下來你將它們按照product_manufacturer進行分組,然後再次返回'return the id ones'。你可以嘗試改變或畫一張桌子,你想看看輸出嗎? –