mysql - SELECT 多个值到多个表中的同一个键

标签 mysql multiple-tables

我有两个表,结构如下

表_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'

检查 http://sqlfiddle.com/#!2/f35ef/1/0 上的结果

关于mysql - SELECT 多个值到多个表中的同一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18442693/

相关文章:

mysql - SQL 不会将查询排队到链接服务器

mysql - 如何设置mysql日期最小值和最大值?

Oracle SQL Loader 将数据拆分到不同的表中

mysql - 如何使用多个表检查所选日期内是否有记录?

asp.net-mvc - ASP.NET MVC 3 多个模型到单个表单

mysql - 通过shell脚本关闭mysql连接

php - 如何在数据库(MySQL)中存储多语言数据?

javascript - 无法将参数传递给谷歌饼图MySql查询

mysql - 从 3 个表中选择行

mysql - SQL - 如何通过链接查询多个表./关联表