mysql выберите option_name, где столбец совпадает со значением и есть любой другой - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть таблица с размерами и цветами

id      option_name
2969    M
2969    Black
2970    S
2970    Blue
2971    S
2971    Black

Мне нужно выбрать опции, идентификаторы которых одинаковы, а также иметь option_name, равное черному.Поэтому мне нужен результат:

2971    S
2969    M

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Попробуйте что-нибудь в этом духе:

select t.id, t.option_name from mytable t
where t.option_name <> 'Black'
and t.id in (select m.id from mytable m where m.option_name = 'Black')
0 голосов
/ 25 апреля 2018

используйте подзапрос для определения идентификаторов, имеющих option_name = black, и исключите option_name = black из примера основного результата

select 
`table`.`id`,
`table`.`option_name`
from 
`table`
where 
`table`.`option_name` <> "Black"
and 
`table`.`id` in(select `table`.`id` from `table` where `table`.`option_name` = "black")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...