Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Правильный запроc SQL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
myocean
Отправлено: 27 Декабря, 2015 - 14:49:45
Post Id


Гость


Покинул форум
Сообщений всего: 97
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Помогите составить грамотный запрос SQL...

из таблицы вида

tag id
1 1
2 1
4 1
2 2
2 3
1 4
4 4

помогите выбрать все id где встречаются все теги из запроса (например 1 и 4)...
в нашем случае это будут id 1 и
 
 Top
OrmaJever Модератор
Отправлено: 27 Декабря, 2015 - 15:46:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT DISTINCT id FROM tbl WHERE tag IN (1,4)


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
myocean
Отправлено: 27 Декабря, 2015 - 16:00:09
Post Id


Гость


Покинул форум
Сообщений всего: 97
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Спасибо, но не то, так как нужно чтоб встречались ВСЕ теги прописанные в IN, записи где есть часть тегов нам не нужны
 
 Top
OrmaJever Модератор
Отправлено: 27 Декабря, 2015 - 16:20:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




а что значит часть тегов?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
myocean
Отправлено: 27 Декабря, 2015 - 16:40:03
Post Id


Гость


Покинул форум
Сообщений всего: 97
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




при IN будут выводится по условию ИЛИ а нужно И...
нужны все уникальные id которые имеют указанные теги...
(Добавление)
Например нужны id с тегами: 1,4 и 5

tag id
1 1
2 1
4 1
5 1
2 2
2 3
1 4
4 4


нужные результат id = 1
 
 Top
SAD
Отправлено: 27 Декабря, 2015 - 16:55:14
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT  *
  2.             FROM    TABLE
  3.             WHERE   id IN (1,2,3,4)
  4.             GROUP   BY id
  5.             HAVING  COUNT(*) = 4



как - то так
 
 Top
myocean
Отправлено: 27 Декабря, 2015 - 17:05:54
Post Id


Гость


Покинул форум
Сообщений всего: 97
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




SAD пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT  *
  2.             FROM    TABLE
  3.             WHERE   id IN (1,2,3,4)
  4.             GROUP   BY id
  5.             HAVING  COUNT(*) = 4



как - то так



Спасибо, а как вычислить count... так как число тегов будет различно
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB