是否有办法将这两个语句合并为一个语句而不产生重复条目?
SELECT * FROM Seq where JULIANDAY('2012-05-25 19:02:00')<=JULIANDAY(TimeP)
order by TimeP limit 50
SELECT * FROM Seq where JULIANDAY('2012-05-29 06:20:50')<=JULIANDAY(TimeI)
order by TimeI limit 50
SQLITE
不支持我的第一个明显的尝试(语法错误:Limit子句应该在UNION之后,而不是之前):
SELECT * FROM Seq where JULIANDAY('2012-05-25 19:02:00')<=JULIANDAY(TimeP)
order by TimeP limit 50
UNION
SELECT * FROM Seq where JULIANDAY('2012-05-29 06:20:50')<=JULIANDAY(TimeI)
order by TimeI limit 50
4条答案
按热度按时间6kkfgxo01#
使用子查询并在其中执行限制。
cunj1qz12#
查询分阶段处理:
FROM
子句和所有连接;WHERE
子句和所有 predicate 。因此,如果您希望在结果集中看到NULL
值,您永远不应该在WHERE
节中过滤OUTER
连接的表列,因为这会将您的查询转换为INNER
连接;GROUP BY
和HAVING
条款;1.查询组合:
UNION
、INTERSECT
、EXCEPT
或MINUS
ORDER BY
LIMIT
因此,正如其他人所指出的,在 *
UNION
子句之前使用ORDER BY
和LIMIT
* 在语法上是错误的,应该使用子查询:np8igboo3#
ar5n3qh54#
我有一个表
buysell_product
。我想根据views_1
列选择前5个,并使用views_2
列选择另一个前5个,然后合并这两个表。两个查询中的列是相同的。期望这样做能起作用,但它没有:错误:
它们分别工作,但我需要合并它们:
结果:
| 标识符|视图_1|视图_2|姓名|
| - -|- -|- -|- -|
| 2个|四十一|十六|优秀的2013款福特生态运动|
| 三个|七十二|10个|卓越的现代creta|
| 五个|三十九|三十九|iPhone 11 128GB|
| 七个|十二|八十四|卓越的现代creta sx|
| 九个|三十七|八十四|大众波罗1.2 GT AMT 2017款|
| 四十四|三十四|八十一|Usupso按摩防滑拖鞋|
| 四十五|十五|七十五|大蒜粉-100 Gm|
| 五十七|三十五|十一|iPhone 13和14|
| 六十七|十五|七十三|通用触摸屏电容式手写笔|