如何列出此表中的id = man和int = woman?
的iduserTable 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'
但是不行......
感谢。
答案 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'