我有两个表,结构如下
表_1
uid | name | age
1 | John | 24
2 | Adam | 35
3 | Sara | 26
表_2
id | uid | meta_key | meta_value
1 | 2 | location | NY
2 | 2 | school | NYU
3 | 3 | Location | NY
4 | 3 | school | XYZ
6 | 1 | location | NY
6 | 1 | school | NYU
我想做的是从 table_1 中选择用户,他们的位置是 NY,学校是 NYU
这是我试过但没有成功的查询
SELECT
tabl_1.uid
FROM `tabl_1`, `tabl_2`
WHERE
tabl_1.uid = tabl_2.uid
AND table_2.meta_key IN ('location', 'school')
AND table_2.meta_value IN ('NY', 'NYU')
ORDER BY tabl_1.uid ASC
如果您有有效的查询或指向解决方案的链接,我将无处不在,我将不胜感激,谢谢。
最佳答案
你应该试试
SELECT t1.uid
FROM tabl_1 t1 INNER JOIN tabl_2 t2
ON t1.uid = t2.uid AND t2.meta_key = 'location' AND t2.meta_value = 'NY'
INNER JOIN tabl_2 t3
ON t1.uid = t3.uid AND t3.meta_key = 'school' AND t3.meta_value = 'NYU'
关于mysql - SELECT 多个值到多个表中的同一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18442693/