sqlite - 将数据作为其他表中的列返回

标签 sqlite join

使用两个 SQLite 表,示例如下。我想返回人的姓名及其年龄范围,而不是 rangeId。

SELECT t1.ageRange, t2.name   
FROM Table1 t1   
INNER JOIN Table2 t2  
WHERE t1.rangeId = t2.ageRangeId  
.  
.  //This code does what I want, but is really inefficient and isn't scalable  
.

Table1   _____________//table name  
rangeId : ageRange__  //column names  
1 : 0 - 16  ___________//sample data  
2 : 17 - 28  
3 : 29 - 50  
4 : 50+  
.  
Table2  
name : ageRangeId  
John : 2  
David : 3  
Karl : 2  
Ben : 1

最佳答案

INNER JOIN 语法是

FROM Table1 INNER JOIN Table2 ON Table1.key=Table2.key

我做了一个 fiddle 。这就是您想要的:

SELECT t1.ageRange, t2.name   
FROM Table1 t1   
INNER JOIN Table2 t2  
ON t1.rangeId = t2.ageRangeId  

http://sqlfiddle.com/#!9/10c60f/2

问题是你的例子很简单,你的方法无法改进。你只需加入两张小 table 。有不同的方法可以做到这一点,但它们都是等效的

关于sqlite - 将数据作为其他表中的列返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37699727/

相关文章:

java - 如何在 Android 的 SQLite 中查看 db.delete 生成的查询

mysql - 我如何使用连接来组合这两个查询?

SQL优化问题

sql - 将左连接更改为基本连接

mysql - 选择一个没有名为 foobar 的帖子的用户

java - 登录系统我不知道该怎么做

安卓应用 : Old database still exists after switching to room database

带复选框的 Android ListView

mysql - SQL 行返回顺序

mysql - 如何过滤 INNER JOIN SQL 命令结果