我有A,B,C和D的记录。
我的SQL1
SELECT * FROM main_table order by main_table.date desc limit 2
返回A和B.
我的SQL2
SELECT * FROM main_table left join sub_table using (key) where sub_table._id is not null
返回B和C.
我想要一个返回A,B和C的SQL语句。基本上,我想加入SQL1或SQL2
如何以最佳方式组合这两个SQL(在SQLite中)?
我的数据如下
main_table
_id date key
1 2016-08-04 D
2 2016-10-06 A
3 2016-09-04 B
4 2016-07-05 C
sub_table
_id age key
1 8 B
2 9 C
欲望输出
m._id m.date m.key s._id s.age s.key
2 2016-10-06 A
3 2016-09-04 B 1 8 B
4 2016-07-05 C 2 9 C
我的选择逻辑......我想选择前两个最新数据,以及具有年龄的数据。我不关心的其他人(即D不在前2名,并且没有年龄)。
答案 0 :(得分:1)
如果我读得正确,那么UNION
可能是您的想法:
SELECT * FROM
(SELECT * FROM main_table LEFT JOIN sub_table USING (key)
ORDER BY date DESC LIMIT 2)
UNION
SELECT * FROM main_table LEFT JOIN sub_table USING (key)
WHERE sub_table._id IS NOT NULL