Мне нужно построить сложный mysql-запрос. У меня есть таблица с некоторой информацией о пользователе, с тремя столбцами: id, id_user, id_campo, valore. Так, например:Построить MySql Query с несколькими условиями, где условия
- 1, 1, 1, «Roberto» (где id_campo = 1 для имени пользователя);
- 2, 2, 1, "Luca";
- 3, 1, 2, "Windows"; (где id_campo = 2 для используемой ОС);
- 4, 2, 2, "Linux"; и так далее.
Теперь я должен выбрать пользователей, где: имя = "Роберто" и ОС = "Linux", но тот же пользователь:
SELECT id_user WHERE (id_campo=1 AND valore="Roberto") OR (id_campo=2 AND valore="Linux").
В этом примере случае, обратный запрос id_user = 1 и id_user = 2, но я не получил бы никакого результата. Как я могу изменить запрос, чтобы включить условие «тот же пользователь»?
Спасибо!
Вы знаете, что база данных, построение не так, верно? Это не то, как должна работать реляционная база данных/таблица. Вы не используете отношения mulitple, используя одни и те же столбцы для разных данных. И почему вы не можете просто получить строки, соответствующие «id_user»? – junkfoodjunkie
Почему оператор 'FROM' пропущен? – RomanPerekhrest
Почему не так? У меня есть таблица пользователей, таблица «campo» и таблица «user_spec». Таким образом, пользователь может иметь разные значения user_spec («Roberto», «Luca», «Windows», «Linux», ...), которые содержатся в «campo» («Name», «OS», «email»,. ..). Если это неправильно, как я могу лучше всего изменить структуру db? благодаря – cent89