braindbrigada
14.01.2014 - 21:50
Добрый вечер.
Вобщем ситуация такая.
после передачи get запроса получаем информацию по каким значениям выбирать записи из mysql.
Допустим param1 и param2
Данные записаны в таблицу id | product_id | param_id
1 | 123 | param1
2 | 123 | param2
3 | 321 | param3
4 | 111 | param1 и т.д.
Запросом
WHERE param_id=param1 OR param_id=param2
Я получаю product_id = 123 и 111
Но мне нужно получить только product_id = 123 тоесть product_id соответствующий и param1 и param2
Дельного совета как правильно выбрать значения из базы или php оставить только product_id = 123
з.ы. Значений пару десятков.
Игорь_Vasinsky
14.01.2014 - 21:59
where param_id = param1 and param_id = param2 and ceil = 123
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
14.01.2014 - 22:06
ай, красавэлла)))
Игорь_Vasinsky, Игорь извени, но тут я должен немного поржать
_____________
Стимулятор ~yoomoney - 41001303250491
linker
14.01.2014 - 22:07
... WHERE product_id = 123 AND param_id IN (param1, param2)
_____________
Gear FrameworkGear Framework на Github
Игорь_Vasinsky
14.01.2014 - 22:07
ааа. мысль то была как у линкера)))
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
14.01.2014 - 22:09
linker, сегодня определенно весёлый день

__
народ вы меня начинаете потихоньку убивать)))
_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
14.01.2014 - 22:11
4 часа WOT + собирал картонный макет су100, лёг уже спать, начал фильм искать - тут топик - грех не написать лежа на боку одной рукой ответ, не прокручивая скрол на таблицу в первом посте.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
braindbrigada
14.01.2014 - 22:11
Цитата |
... WHERE product_id = 123 AND param_id IN (param1, param2) |
но product_id =123 еще неизвестно или это еще один запрос?
linker
14.01.2014 - 22:12
ValickОдно из двух, либо ты обкурился, либо топикстартер неправильно формулирует вопрос.
_____________
Gear FrameworkGear Framework на Github
linker
14.01.2014 - 22:13
Беру свои слова обратно, это я невнимательно читаю.
_____________
Gear FrameworkGear Framework на Github
Valick
14.01.2014 - 22:13
braindbrigada, тут можно немножко схитрить и применить HAVING
если мы знаем что параметров должно быть два то:
SELECT * FROM (SELECT * FROM `table` WHERE param_id=param1 OR param_id=param2) GROUP BY product_id HAVING COUNT(product_id)>1
как-то так
_____________
Стимулятор ~yoomoney - 41001303250491
braindbrigada
14.01.2014 - 22:15
Цитата |
А как ты узнаёшь, что тебе нужно именно 123, а не 111? |
Суть вопроса сводится к этому. Нужно выбрать 123 так как он соответствует по двум (всем) параметрам.
Цитата |
если мы знаем что параметров должно быть два то |
их может быть и 2 и 3 и 10
Valick
14.01.2014 - 22:20
Цитата |
их может быть и 2 и 3 и 10 |
ну тогда я надеюсь догадаешься как подкорректировать запрос
_____________
Стимулятор ~yoomoney - 41001303250491
braindbrigada
14.01.2014 - 22:26
Цитата (Valick @ 14.01.2014 - 18:20) |
Цитата | их может быть и 2 и 3 и 10 |
ну тогда я надеюсь догадаешься как подкорректировать запрос
|
Every derived table must have its own alias [SELECT * FROM (SELECT * FROM products WHERE param_id=3 OR param_id=7) GROUP BY product_id HAVING COUNT(product_id)>1]
Valick
14.01.2014 - 22:26
а если еще хитрее, то можно так
SELECT * FROM (SELECT * FROM `table` WHERE param_id IN ($param)) GROUP BY product_id HAVING MAX(COUNT(product_id))
по идее должно работать
_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.