如何选择多个表与查询

问题描述:

我有一个android数据库(sqlite的)在几个表内。 现在我想用查询返回记录; 我的单表查询:如何选择多个表与查询

Cursor c = db.rawQuery("SELECT * FROM Table1;", null); 
+1

你知道SQL吗? ...你可以使用'select * from table1,table2',但我很确定它不是你想要的(你的问题不清楚) – Selvin 2015-03-02 19:31:05

+0

你的意思是一次?他们有什么共同之处,比如来自'Table2'的'Table1'''的外键说'table1_id'? – TooTiredToDrink 2015-03-02 19:31:54

+1

我想他想加入 – TooTiredToDrink 2015-03-02 19:32:14

如果你的三个表具有相同的列,你可以这样做:

SELECT col1, col2, col3, col4 
    FROM table1 
UNION ALL 
SELECT col1, col2, col3, col4 
    FROM table2 
UNION ALL 
SELECT col1, col2, col3, col4 
    FROM table3 

每个SELECT语句可以有一个WHERE条款。但是,如果上述内容真的是你想要的,那么很有可能你的数据库模式可以通过将所有三个表合并为一个并添加一列来确定它们所属的位置。

+0

我的3个表格有不同的列 – user3404171 2015-03-02 19:50:47

+1

然后您可以添加缺失的列。即:'...,NULL作为col2,...'(或者像** ** **或** 0 **这样的默认值,取决于缺失列的类型) – 2015-03-03 09:05:48

+1

是的,@DerGolem说的是什么! – 323go 2015-03-03 14:59:11