SQL, как выбрать несколько строк с одинаковым идентификатором на основе критериев других столбцов? - PullRequest
0 голосов
/ 31 мая 2019

Я хотел бы выбрать строки, идентификатор которых соответствует критериям в столбце 2: сначала Apple, затем Orange.Желаемым ответом будут первые 2 строки с ID = 1.

  • ID, Column11, Column12, Column2
  • 1, 1, 0, Apple
  • 1, 0, 1, Orange
  • 2, 1, 0, Apple
  • 2, 0, 1, Apple

Я добавил две вспомогательные колонки Column11 и column12 кОтметьте, какая строка для одного идентификатора является первой, а какая - второй.Ниже мой код, но строки не выбраны.

SELECT * FROM table WHERE Column11=1 and Column2=’Apple’ AND Column12=1 AND Column2=’Orange’

Если я буду использовать только ниже, я получу строку 1

SELECT * FROM table WHERE Column11=1 and Column2=’Apple’

Если я буду использовать только ниже, я получу строку 2

SELECT * FROM table WHERE Column12=1 AND Column2=’Orange’

Зачем их складывать, у меня ничего нет?Пожалуйста помоги.Спасибо!

1 Ответ

2 голосов
/ 31 мая 2019

Попробуйте это-

SELECT * FROM your_table
WHERE ID IN
(
    SELECT ID FROM your_table 
    WHERE Column2 IN ('Apple','Orange')
    GROUP BY ID 
    HAVING COUNT(Column2) = COUNT(DISTINCT Column2)
)
AND  
(
    (Column11=1 and Column2='Apple')
    OR (Column12=1 AND Column2='Orange')
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...