假设我有一个包含这样的列的表:'text'
,'id'
,我想要选择所有id为1的列,我想限制所有id为null的列。
SELECT text, id FROM table_name WHERE id = 1 ..LIMIT 2 WHERE id = null ? ..
我想我必须以某种方式使用第二个查询,但我不知道真的知道如何?
SELECT text, id FROM table_name
INNER JOIN (SELECT text, id WHERE id = NULL LIMIT 2) as second ON .. on what
should I join them ? .. WHERE id = 1
如何选择id为1的所有列并限制id为null的列?
我想选择id为1的所有行,并且只选择id为null的2行。
如果您使用CTE,那么您应该能够限制在该CTE内返回的结果(公用表表达式)
WITH limit AS
(
SELECT id, text FROM table_name WHERE id IS NULL
LIMIT 2
)
SELECT id, text FROM table_name WHERE is = 1
UNION ALL
SELECT * FROM limit;
你想要一个工会。
SELECT text, id FROM table_name WHERE id = 1
UNION ALL
(SELECT text, id FROM table_name WHERE id is null LIMIT 2)
需要括号来保持限制不适用于整个联合,而不仅仅是第二个选择。