2011-12-05 37 views
0

我有一個庫存數據庫。一些產品只能在一個多件包裝中購買。我希望我的客戶能夠對各個項目執行產品搜索,如果找到匹配項,則返回相應的多包裝。MySQL結果重定向/鏈接行?

Table  | ID | Length | Height | Parent | 
----------+----+--------+--------+--------+ 
Product1 | 1 | 100 | 500 | 3  | - Don't return this 
Product2 | 2 | 200 | 50  | 3  | - Don't return this 
Multipack | 3 | 200 | 500 | NULL | + Return this 

如果客戶搜索產品長度< 150,束條應該是因爲產品1個匹配這一標準退回。 如果客戶搜索長度爲< 600的產品,即使所有三個條目都符合此標準,該組合包應該只返回一次。有沒有辦法告訴MySQL Product1和Product2應該作爲Multipack返回查詢結果?處理這個問題的最好方法是什麼?該數據庫有大約20,000行和200多個包裝。謝謝 - skibulk

+0

您如何知道Multipack與Product1和Product2有關? –

+0

它說多包裝包含產品1 – abcde123483

+0

用「父」列更新了表 – skibulk

回答

0

我給你一些精神食糧......

怎麼樣返回符合條件的非multpack ID的不同列表中的WHERE子句中的子查詢。然後AND NULL條件,所以你只能選擇多包裝。

SELECT DISTINCT Table,Length,Height FROM Inventory WHERE ID IN (SELECT DISTINCT ID FROM Inventory WHERE length < x and Parent => 0) AND Parent = NULL