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 :: Как вытащить из базы id, который связан с 3мя другими id?

 PHP.SU

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


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

> Без описания
Rooner
Отправлено: 11 Февраля, 2014 - 14:55:09
Post Id


Посетитель


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


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




Что-то меня заклинило, не могу понять как вытащить из базы 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
 
 Top
teddy
Отправлено: 11 Февраля, 2014 - 14:59:34
Post Id


Участник


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


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




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM mats_pars WHERE pid IN(4, 12, 10)
 
 Top
Rooner
Отправлено: 11 Февраля, 2014 - 15:02:53
Post Id


Посетитель


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


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




teddy пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM mats_pars WHERE pid IN(4, 12, 10)

Мне нужно чтобы вытащился только тот id, который связан с pid 4, pid 12, pid 10 одновременно, не с кем-то из них а сразу со всеми
 
 Top
teddy
Отправлено: 11 Февраля, 2014 - 15:08:54
Post Id


Участник


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


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




Понял, что ничего не понял. Вы говорите в единственном числе, а у Вас один pid может иметь несколько mid.
1|4
3|4

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

и если записей много, соответственно айдишник у каждой записи свой, как Вы себе представляете то, что бы у нескольких записей был один и тот же айди? не через запятую же хранить в поле значения.
 
 Top
Rooner
Отправлено: 11 Февраля, 2014 - 15:17:22
Post Id


Посетитель


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


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




teddy, чувствую что, если буду разъяснять, еще больше запутаю, пожалуй я просто спрошу: какой запрос вытащит только id = 1? Из таблицы выше
 
 Top
teddy
Отправлено: 11 Февраля, 2014 - 15:20:32
Post Id


Участник


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


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




Rooner пишет:
какой запрос вытащит только id = 1? Из таблицы выше

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `id` FROM `mats_pars` WHERE `id`=1
Улыбка Если нужно не повторяясь тогда используем ключевое слово DISTINCT.
И снова не понятно о чем речь о id или о mid.
 
 Top
Мелкий Супермодератор
Отправлено: 11 Февраля, 2014 - 15:23:33
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




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.


-----
PostgreSQL DBA
 
 Top
Rooner
Отправлено: 11 Февраля, 2014 - 15:27:42
Post Id


Посетитель


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


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




Мелкий, да, вот это подходит, having я не использовал, получается что зря, спасибо! Радость
(Добавление)
teddy, да, я про mid, просто опечатался, смысл в том, что mid изначально не известен, но вариант, который предложил Мелкий подошел.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB