список результатов в MySQL из той же таблицы - PullRequest
0 голосов
/ 30 августа 2011

Как я могу перечислить iduser из этой таблицы, где пол = мужчина и int = женщина?

Table usermeta
----------------------
id  iduser a        b
12  204    age      19
7   203    age      35
6   200    age      24
3   201    age      34
5   201    gender   man
2   200    gender   woman
8   203    gender   man
9   204    gender   man
4   201    int      woman
10  204    int      male
11  203    int      woman
1   200    int      male

Ответ должен быть:

iduser

204

У меня есть еще вопрос, а если я тоже хочу отфильтровать возраст?Я пытаюсь решить эту проблему, но я не могу ... Куда шопульд я положил "age = 19"?Я пытаюсь это ... a. a = 'age' AND a. b = '19', но не работает ... спасибо.

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

Самостоятельное соединение должно работать.Примерно так (не проверено):

SELECT a.`iduser` FROM `table` a 
JOIN `table` b ON b.`iduser` = a.`iduser` 
WHERE a.`a`='gender' AND a.`b`='man' AND b.`a`='int' AND b.`b`='woman'

Но вы должны подумать об оптимизации структуры БД, так как это кажется немного требовательным к производительности.

1 голос
/ 30 августа 2011

Хлоп!

Так или иначе, база данных должна выглядеть не так.

SELECT DISTINCT a.iduser FROM usermeta t1
INNER JOIN usermeta t2 ON (t1.iduser = t2.iduser)
WHERE t1.a = 'gender' AND t1.b = 'man'
      AND t2.a = 'int' AND t2.b = 'woman'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...