Mysql 这两个子查询是独立的,它们返回的行数相同。表的特性以及两个子查询的编写方式保证了它们将返回相同数量的行。。不能使用“并行查询” SELECT (SELECT start_date FROM projects WHERE (

Mysql 这两个子查询是独立的,它们返回的行数相同。表的特性以及两个子查询的编写方式保证了它们将返回相同数量的行。。不能使用“并行查询” SELECT (SELECT start_date FROM projects WHERE (,mysql,sql,Mysql,Sql,这两个子查询是独立的,它们返回的行数相同。表的特性以及两个子查询的编写方式保证了它们将返回相同数量的行。。不能使用“并行查询” SELECT (SELECT start_date FROM projects WHERE (SELECT DATE_ADD(start_date, INTERVAL -1 DAY)) NOT IN (SELECT start_date FROM projects) ORDER BY start_date ASC) AS sta


这两个子查询是独立的,它们返回的行数相同。表的特性以及两个子查询的编写方式保证了它们将返回相同数量的行。。不能使用“并行查询”
SELECT
    (SELECT start_date
    FROM projects 
    WHERE
    (SELECT DATE_ADD(start_date, INTERVAL -1 DAY)) NOT IN (SELECT start_date FROM projects)
    ORDER BY start_date ASC) AS start_date,
    
    (SELECT end_date
    FROM projects 
    WHERE
    (SELECT DATE_ADD(end_date, INTERVAL 1 DAY)) NOT IN (SELECT end_date FROM projects)
    ORDER BY end_date ASC) AS end_date
    
FROM projects p
ORDER BY DATEDIFF(end_date, start_date) ASC, start_date ASC 
SELECT start_date
FROM projects p
WHERE (SELECT (DATE_ADD(start_date, INTERVAL -1 DAY)) NOT IN (SELECT start_date FROM projects)
ORDER BY start_date ASC
select t1.start_date, t2.end_date

from (
    SELECT start_date
    FROM projects 
    WHERE DATE_ADD(start_date, INTERVAL -1 DAY)  NOT IN (SELECT start_date FROM projects)
    UNION 
    SELECT end_date
    FROM projects 
    WHERE SELECT DATE_ADD(start_date, INTERVAL -1 DAY) NOT IN (SELECT end_date FROM projects)

    ) t 
left join (

    SELECT start_date
    FROM projects 
    WHERE DATE_ADD(start_date, INTERVAL -1 DAY)  NOT IN (SELECT start_date FROM projects)
    ) t1 on t.start_date = t1.start_date
left join (

    SELECT end_date
    FROM projects 
    WHERE DATE_ADD(start_date, INTERVAL -1 DAY)  NOT IN (SELECT start_date FROM projects)
    ) t2 on t.start_date = t2.start_date
order by t1.syaty_date
(SELECT start_date ... ORDER BY start_date ASC)
SELECT s.start_date, e.end_date
FROM
(
  SELECT start_date, ROW_NUMBER() OVER (ORDER BY start_date) AS rn
  FROM projects 
  WHERE start_date - INTERVAL 1 DAY NOT IN (SELECT start_date FROM projects)
) s
JOIN
(
  SELECT end_date, ROW_NUMBER() OVER (ORDER BY end_date) AS rn
  FROM projects 
  WHERE start_date + INTERVAL 1 DAY NOT IN (SELECT end_date FROM projects)
) e USING (rn)
ORDER BY s.start_date;
select 
  start_date,
  end_date,
  start_date - interval 1 day as prev_day,
  1 as one
from projects;
select 
  (select start_date) as start_date,
  (select end_date) as end_date,
  (select start_date - interval 1 day) as prev_day,
  (select 1) as one
from projects;
select 
  (select start_date from projects) as start_date,
  (select end_date from projects) as end_date,
  (select start_date - interval 1 day from projects) as prev_day,
  (select 1 from projects) as one
from projects;
SELECT
  (SELECT start_date FROM projects ...) AS start_date,
  (SELECT end_date FROM projects ...) AS end_date
FROM projects p