MySQL результат перенаправления / связанных строк? - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть база данных инвентаризации.Некоторые продукты можно приобрести только в мультипаке.Я хочу, чтобы мои клиенты могли выполнять поиск товара по отдельным товарам, возвращая их соответствующий мультипак, если найдены совпадения.

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 мультипаков.Спасибо - скибулк </p>

1 Ответ

0 голосов
/ 06 декабря 2011

Я дам вам пищу для размышлений ...

Как насчет подзапроса в предложении 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
...