Сложный условный SQL-запрос - PullRequest
0 голосов
/ 16 июня 2010

Я даже не уверен, возможно ли это, но мне это нужно для базы данных Access.Итак, у меня следующая структура базы данных:

альтернативный текст http://images.virtualdesign.pl/images/25480Drawing1.jpg

Теперь мне нужно выполнить запрос, который берет category_id из моего продукта и выполняет магию:
- скажем, продукт принадлежитна консоль (category_id в таблице Console)
- из console_types взять type_id, где category_id == category_id
- но если товар принадлежит console_game (category_id находится в таблице console_game)
- из console_game взять game_cat_id, где category_id == category_id

Я не уверен, способен ли mysql на такое.Если нет, то у меня действительно есть проблема.Может быть, есть способ разделить это на 2,3 отдельных запроса?

РЕДАКТИРОВАТЬ:

Я нашел что-то вроде IF EXISTS (SELECT type_id FROM console WHERE category_id='category_id').Может быть, это будет полезно?

Ответы [ 2 ]

0 голосов
/ 16 июня 2010

Вы можете решить эту проблему, выполнив три подзапроса и используя UNION ALL , чтобы объединить их.

0 голосов
/ 16 июня 2010

Вы должны использовать оператор case, чтобы сделать выбор как:

Select Case (expression)
Case option1
    statement1
Case option2
    statement2

Пример оператора Case Access

Операторы case работают в MySql, Sql Server и т. Д. (Синтаксис зависит от реализации).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...