|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.09.2019, 14:22 | #1 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 122
|
Запрос с условием AND к таблице без уникального поля (primary key)
Всем доброго времени суток.
Впервые столкнулся с подобной задачей. Имеем таблицу(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. |
27.09.2019, 14:58 | #2 |
Участник клуба
Регистрация: 10.08.2010
Сообщений: 1,389
|
Запросе перечислить attribute_id = 197 и ещё attribute_id = 197 зачем ? когда можно pa.attribute_id IN (198,197)
Код:
E_MAIL: rijgvina7@yahoo.com
|
27.09.2019, 14:59 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну так и свяжите их по product_id
например, если всего два attribute_id требуется, тогда Код:
Последний раз редактировалось Serge_Bliznykov; 27.09.2019 в 15:02. |
27.09.2019, 15:15 | #4 | |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 122
|
Цитата:
Этот пример вроде работает. Но что делать если attribute_id более 2-х? у меня такое возможно и нужно |
|
27.09.2019, 15:20 | #5 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 122
|
Нашел такое решение:
Код:
|
27.09.2019, 15:21 | #6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Код:
|
|
27.09.2019, 15:23 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
27.09.2019, 15:33 | #8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,707
|
|
27.09.2019, 15:38 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.09.2019, 15:46 | #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 |