У меня есть таблица (product
), в которой перечислены все продукты. У меня есть другая таблица (product_buddy
), которая является отображением зависимостей.SQL для возврата зависимостей продуктов и продуктов
Я установка простого SQLFiddle
В скрипке, есть 3 модели: Foo, Bar, БАЗ. Существует также строка в product_buddy
, где baz является зависимостью foo. Так что если я SELECT
foo, я хочу, чтобы он также возвращал базу. Но если я SELECT
бар, у него нет зависимости, поэтому он должен просто вернуть бар. То же самое с baz, у него нет зависимости, поэтому он должен просто вернуться сам. Только foo должен возвращать две строки в этой скрипке.
Соединение просто присоединяется к нему в одну строку, которая не то, что я хочу, я хочу две строки с полями и полями каждого продукта. Когда я говорю, две строки, если я SELECT
Foo, он должен вернуть как Foo строку и БАЗ строку из-за зависимости:
# SQL without missing join/binding of dependency:
SELECT code,name FROM product WHERE product.code = "foo";
| code | name |
|------|-------------|
| foo | Foo Product |
| baz | Baz Product |
Результат такой же, если бы я сделал это:
SELECT code,name FROM product WHERE product.code IN ("foo", "baz");
но я не знаю зависимости раньше времени. Мне нужен SQL, чтобы выяснить зависимость. Я в порядке с редактированием таблицы product_buddy
, таблица product
должна оставаться неизменной.
Можете ли вы разместить свой желаемый результат? – Rahul
Даже когда SqlFiddle рекомендуют описать вопрос, вы должны попытаться предоставить большую часть информации здесь, если потеряна внешняя ссылка. –
Добавил пример ответа, когда я возвращаю продукт foo, мне нужно, чтобы он возвращал строки foo и baz из-за зависимости, определенной в таблице 'product_buddy'. –