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 :: Версия для печати :: Как вытащить из базы id, который связан с 3мя другими id?
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Как вытащить из базы id, который связан с 3мя другими id?

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

1. Rooner - 11 Февраля, 2014 - 14:55:09 - перейти к сообщению
Что-то меня заклинило, не могу понять как вытащить из базы id, который связан с 3мя другими id?
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *
  2. FROM mats_pars
  3. WHERE mats_pars.pid = '4' AND mats_pars.pid = '12' AND mats_pars.pid = '10'

Ничего не находит

CODE (html):
скопировать код в буфер обмена
  1. mid  pid
  2. 1     10
  3. 1     12
  4. 1     4
  5. 2     9
  6. 2     14
  7. 2     5
  8. 3     4
  9. 3     11
  10. 3     10
2. teddy - 11 Февраля, 2014 - 14:59:34 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM mats_pars WHERE pid IN(4, 12, 10)
3. Rooner - 11 Февраля, 2014 - 15:02:53 - перейти к сообщению
teddy пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM mats_pars WHERE pid IN(4, 12, 10)

Мне нужно чтобы вытащился только тот id, который связан с pid 4, pid 12, pid 10 одновременно, не с кем-то из них а сразу со всеми
4. teddy - 11 Февраля, 2014 - 15:08:54 - перейти к сообщению
Понял, что ничего не понял. Вы говорите в единственном числе, а у Вас один pid может иметь несколько mid.
1|4
3|4

Или это не полная структура таблицы и есть ещё id?

и если записей много, соответственно айдишник у каждой записи свой, как Вы себе представляете то, что бы у нескольких записей был один и тот же айди? не через запятую же хранить в поле значения.
5. Rooner - 11 Февраля, 2014 - 15:17:22 - перейти к сообщению
teddy, чувствую что, если буду разъяснять, еще больше запутаю, пожалуй я просто спрошу: какой запрос вытащит только id = 1? Из таблицы выше
6. teddy - 11 Февраля, 2014 - 15:20:32 - перейти к сообщению
Rooner пишет:
какой запрос вытащит только id = 1? Из таблицы выше

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `id` FROM `mats_pars` WHERE `id`=1
Улыбка Если нужно не повторяясь тогда используем ключевое слово DISTINCT.
И снова не понятно о чем речь о id или о mid.
7. Мелкий - 11 Февраля, 2014 - 15:23:33 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT mid FROM mats_pars WHERE pid IN(4, 12, 10) GROUP BY mid HAVING count(0)=3 /*3 - количество элементов в in*/

Результат адекватен при наличии уникального ключа по сочетанию mid & pid.
8. Rooner - 11 Февраля, 2014 - 15:27:42 - перейти к сообщению
Мелкий, да, вот это подходит, having я не использовал, получается что зря, спасибо! Радость
(Добавление)
teddy, да, я про mid, просто опечатался, смысл в том, что mid изначально не известен, но вариант, который предложил Мелкий подошел.

 

Powered by ExBB FM 1.0 RC1