![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 122
|
![]()
Всем доброго времени суток.
Впервые столкнулся с подобной задачей. Имеем таблицу(products_attributes), описывающую взаимосвязь двух других таблиц (products и attributes) product_id | attribute_id | text 147149 | 197 | Нет 147149 | 198 | Есть 246239 | 198 | Нет 356823 | 197 | Нет 435345 | 128 | Нет 324342 | 134 | Нет 323545 | 178 | Нет 455854 | 197 | Нет ....... и тд. Нужно вывести product_id только тех значений, где встречаются записи attribute_id = 197 AND attribute_id = 198 одновременно, т.е. SELECT product_id FROM product_attribute pa WHERE pa.attribute_id = '198' AND pa.attribute_id = '197' - не работает, оно и понятно почему Если использовать OR - выведутся все записи: где есть attribute_id = 197, где есть attribute_id = 197 меня интересует только SELECT product_id FROM product_attribute pa WHERE pa.attribute_id = '198' OR pa.attribute_id = '197' - не подходит, т.к. выводит все комбинации. Нужны product_id только тех где есть attribute_id = 197 AND attribute_id = 198 одновременно Как правильно решить такую задачу? Последний раз редактировалось Armatus; 27.09.2019 в 14:53. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 10.08.2010
Сообщений: 1,401
|
![]()
Запросе перечислить attribute_id = 197 и ещё attribute_id = 197 зачем ? когда можно pa.attribute_id IN (198,197)
Код:
E_MAIL: rijgvina7@yahoo.com
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ну так и свяжите их по product_id
например, если всего два attribute_id требуется, тогда Код:
Последний раз редактировалось Serge_Bliznykov; 27.09.2019 в 15:02. |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 122
|
![]() Цитата:
Этот пример вроде работает. Но что делать если attribute_id более 2-х? у меня такое возможно и нужно |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 122
|
![]()
Нашел такое решение:
Код:
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]() |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выборка из базы без уникального поля. | Paharok | SQL, базы данных | 11 | 27.09.2016 12:42 |
Сравнение всех значений поля в одной таблице со значением одного поля в другой | ZulenkaSun | Помощь студентам | 3 | 07.06.2016 15:10 |
Автоматическое заполнение поля с определеным условием | NinaGrnh | Microsoft Office Access | 0 | 05.03.2015 13:13 |
Сумма не уникального поля. | Дмитрий mause | Помощь студентам | 4 | 25.01.2012 17:08 |
Вычисляемое поле в таблице ACCESS, создать вычисляемое поля в таблице аксес | artlayers | Microsoft Office Access | 2 | 04.11.2009 19:29 |