list从同一个表中生成mysql

时间:2011-08-30 15:11:11

标签: php mysql wordpress

如何列出此表中的id = man和int = woman?

的iduser
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

答案应该是:

ID用户所

204

我有另一个问题,如果我想过滤年龄怎么办? 我试图解决这个问题,但我不能...... 如果购物我把“年龄= 19”? 我试试这个...... a。a ='年龄' 和a。b = '19' 但是不行...... 感谢。

2 个答案:

答案 0 :(得分:2)

自我加入应该有效。像(未经测试)的东西:

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 :(得分:1)

糟糕!

无论如何,这不是数据库的样子。

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'