2017-03-12 23 views
0

我有两个表如何从SQLite和排序数据

收入

income

费用

expense

问题的两个表数据我想查询所有的数据fr OM两个表

SELECT income.date AS IN_DATE, expense.date AS EX_DATE FROM income, expense 

我得到奇怪的结果数据是双次从数据库中,你可以看到

whole result after query

你可以试试这个HERE

我怎么能得到不同的结果不双和最后想问不知道从两个表中获取数据,并按日期降序排序。

+0

查询来自两个表的数据 - 如何?你是什​​么意思?你正在做两个交叉连接,这就是为什么你要重复的结果。你想要一个联盟吗? – GurV

回答

1

我的猜测是,你想union all

select 'income' as which, id, title, date 
from income 
union all 
select 'expense' as which, id, title, date 
from expense; 

这会给你包含来自两个表行的结果集,与表的每一行来自一个标识符。

您可以按日期排序,并做其他操作,如果你使用子查询:

select ie.* 
from (select 'income' as which, id, title, date 
     from income 
     union all 
     select 'expense' as which, id, title, date 
     from expense 
    ) ie 
order by date desc; 
+0

OK它工作正常,一堆_thanks_ –

0

您需要匹配相同的ID,否则SQL将只输出任何可能的组合。

SELECT income.date AS IN_DATE, expense.date AS EX_DATE FROM income, expense WHERE income.id LIKE expense.id 
+0

请你想在https://sqliteonline.com上创建一个小提琴 –

+0

我在SQLite上做过,但后来我把“WHERE”改成了大写字母,并且忘了E- – Xerus

0

你简单SELECT确实与两列(IN_DATE, EX_DATE)积。因此,您可以从两列中获得各种可能的组合值。 INNER JOIN income ON expense.id=income.idWHERE income.id == expense.id应该这样做。