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
Форумы портала PHP.SU :: Версия для печати :: Правильный запроc SQL
Форумы портала PHP.SU » » HTTP и PHP » Правильный запроc SQL

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

1. myocean - 27 Декабря, 2015 - 14:49:45 - перейти к сообщению
Помогите составить грамотный запрос SQL...

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

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

помогите выбрать все id где встречаются все теги из запроса (например 1 и 4)...
в нашем случае это будут id 1 и
2. OrmaJever - 27 Декабря, 2015 - 15:46:57 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT DISTINCT id FROM tbl WHERE tag IN (1,4)
3. myocean - 27 Декабря, 2015 - 16:00:09 - перейти к сообщению
Спасибо, но не то, так как нужно чтоб встречались ВСЕ теги прописанные в IN, записи где есть часть тегов нам не нужны
4. OrmaJever - 27 Декабря, 2015 - 16:20:11 - перейти к сообщению
а что значит часть тегов?
5. myocean - 27 Декабря, 2015 - 16:40:03 - перейти к сообщению
при 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
6. SAD - 27 Декабря, 2015 - 16:55:14 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT  *
  2.             FROM    TABLE
  3.             WHERE   id IN (1,2,3,4)
  4.             GROUP   BY id
  5.             HAVING  COUNT(*) = 4



как - то так
7. myocean - 27 Декабря, 2015 - 17:05:54 - перейти к сообщению
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... так как число тегов будет различно

 

Powered by ExBB FM 1.0 RC1