将用于检索值以进行比较的子查询合并到一个查询中?

Combine subqueries used to retrieve values for comparison into a single query?

我有一个这样的 SQL 查询:

SELECT COUNT(*) AS count_value FROM submissions WHERE username = (
  SELECT username FROM submissions WHERE id = '1'
) AND number = (
  SELECT number FROM submissions WHERE id = '1'
) AND tstmp < (
  SELECT tstmp FROM submissions WHERE id = '1'
);

请注意我如何使用此查询来查找具有相似列值但时间戳值小于行号 1 的所有行。

这对我有用,但我想知道,有没有办法将三个子查询合并为一个?它们都是来自同一个 table 的 select 信息,所以我认为这可能是可能的,但我不知道该怎么做。

我认为您可以将子查询合并为一个,并将其用作联接中的派生 table。请试试这个:

SELECT COUNT(*) AS count_value 
FROM submissions s
JOIN (
    SELECT username, number, tstmp 
    FROM submissions WHERE id = 1
) o ON s.number = o.number AND s.username = o.username AND s.tstmp < o.tstmp