SQL-запрос - левое соединение или объединение? - PullRequest
0 голосов
/ 02 октября 2011

Как мне написать SQL-запрос, чтобы узнать, что такое идентификатор группы, а затем отобразить список параметров из этого идентификатора группы.

Я могу сделать это двумя запросами, например:

//Get the group ID 
SELECT option_group_id FROM options WHERE id =14122

//Now get a list of OptionID from that group ID
SELECT id, name FROM options WHERE option_group_id = 999

Как мне поместить это в 1 запрос?

Ответы [ 3 ]

4 голосов
/ 02 октября 2011

Вы можете использовать подзапрос для получения идентификатора группы:

select  id
,       name
from    options
where   option_group_id = 
        (
        select  option_group_id
        from    options
        where   id = 14122
        )
3 голосов
/ 02 октября 2011

В основном:

  • , если вы хотите больше столбцов => объединить
  • , если вы хотите больше строк => объединение

В этом случае:

SELECT toGetData.id
     , toGetData.name
  FROM options toGetId
  join options toGetData on toGetData.option_group_id = toGetId.option_group_id
 wHERE toGetId.id = 14122
2 голосов
/ 02 октября 2011

Ни.Вы используете внутреннее соединение с одной и той же таблицей:

select o2.id, o2.name
from options o1
inner join options o2 on o2.option_group_id = o1.option_group_id
where o1.id = 14122
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...