MYSQL запрос field and field

Ilekor
На сайте с 22.04.2009
Offline
138
334

Приветсвую, друзья программисты!

Требуется помощь в составлении запроса.

Имеется таблица

id1 id2
1 2
2 2
1 1
4 1
3 3
6 4

и т.д.

Требуется выбрать все id1 где id2 равно 1 и id2 равно 2

Запрос вида использует логику или, что не удовлетворяет условию

SELECT id1 FROM table WHERE id2 IN (1,2)

Какие можете предложить варианты по выборке с заданными условиями?

Может join умеет подобное?

Лучший дорген 21 века AgDor(http://agdor.info)
edogs software
На сайте с 15.12.2005
Offline
775
#1

Да, джоин. Думать лениво, но в общих чертах как-то так

select id1 from table a left join table b

on a.id1=b.id1

where a.id2=1 and b.id2=2

group by id1

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
Хелпзонович
На сайте с 15.06.2005
Offline
133
#2

Читаю 5 раз уссловие и не могу понять. id2 равно 1 и id2 равно 2 ОДНОВРЕМЕННО быть не могут. Хоть с joinом, хоть без.

Ну это же эквивалент


SELECT id1 FROM table WHERE id2 =1 and id2 =2

Что ни разу работать не будет. Хотя условие выполняется.

Вы там держитесь! Хорошего вам настроения. Здоровья.
Ilekor
На сайте с 22.04.2009
Offline
138
#3
edogs:
Да, джоин. Думать лениво, но в общих чертах как-то так
select id1 from table a left join table b
on a.id1=b.id1
where a.id2=1 and a.id2=2
group by id1

Все четко выполняется, скорость для индексируемых полей с количеством более 1млн. невероятно быстрая 0.099004

поправил на

a.id2=1 and b.id2=2
edogs software
На сайте с 15.12.2005
Offline
775
#4
Хелпзонович:
Читаю 5 раз уссловие и не могу понять. id2 равно 1 и id2 равно 2 ОДНОВРЕМЕННО быть не могут. Хоть с joinом, хоть без.
Ну это же эквивалент


Что ни разу работать не будет. Хотя условие выполняется.

Мы тоже поначалу не вникли:)

Смысл в том, что ТС интересует id1=1 вот в такой таблице.

id1 id2

1 1

1 2

Т.е. что бы у единички в первом столбике было соответствие во втором столбике и 1 и 2.

Достаточно типовой запрос когда это таблица связей товары-категории и надо выбрать товар из 2 категорий.

Настоящий ад начнется когда надо будет выбрать id1 у которого id2 равно 1 и 2, но при этом НЕ равно 3:)

Ilekor
На сайте с 22.04.2009
Offline
138
#5
edogs:
Мы тоже поначалу не вникли:)
Смысл в том, что ТС интересует id1=1 вот в такой таблице.
id1 id2
1 1
1 2
Т.е. что бы у единички в первом столбике было соответствие во втором столбике и 1 и 2.
Достаточно типовой запрос когда это таблица связей товары-категории и надо выбрать товар из 2 категорий.
Настоящий ад начнется когда надо будет выбрать id1 у которого id2 равно 1 и 2, но при этом НЕ равно 3:)

Надеюсь не доберусь до этого ада :)

Хелпзонович
На сайте с 15.06.2005
Offline
133
#6

Теперь раздуплился чего надо :) А то я и сбоку на эту таблицу смотрю, и сверху, а оно одновременно не выходит :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий