1. ホーム
  2. sql

SQLで「リテラル」テーブルを定義できるか?

2023-11-08 17:35:09

質問

文字通り、一時テーブルを定義できる SQL サブクエリ構文はありますか?

例えば、次のようなものです。

SELECT
  MAX(count) AS max,
  COUNT(*) AS count
FROM
  (
    (1 AS id, 7 AS count),
    (2, 6),
    (3, 13),
    (4, 12),
    (5, 9)
  ) AS mytable
  INNER JOIN someothertable ON someothertable.id=mytable.id

これにより、一時テーブルを作成し、そこにデータを入れ、そしてそれを結合で使用するという、2つか3つのクエリを行う必要がなくなります。

私はMySQLを使用していますが、そのようなことができる他のデータベースにも興味があります。

どのように解決するのですか?

サブクエリに複数の SELECT を組み合わせたサブクエリ UNION s.

SELECT a, b, c, d
FROM (
    SELECT 1 AS a, 2 AS b, 3 AS c, 4 AS d
    UNION ALL 
    SELECT 5 , 6, 7, 8
) AS temp;