MySQL(またはSQL一般)では、あらかじめ定義された識別子のリストを生成し、一致するテーブルデータと結合できますか?テーブルデータで事前定義された、存在しないキーに結合する
のはmy_table
それを呼びましょう、例えば、次の表のデータを取る:
id | value
---+------
1 | 'a'
3 | 'c'
は今、私は可能なid
値のリストを持っているし、一緒に参加したデータと、これらの値の完全なリストを取得したいと思います上記の表から。リスト[1, 2, 3, 4]
では、望ましい結果は次のとおりです。
item | id | value
-----+------+------
1 | 1 | 'a'
2 | NULL | NULL
3 | 3 | 'c'
4 | NULL | NULL
もちろん、SELECT * FROM my_table WHERE id IN (1, 2, 3, 4)
利回りのようなクエリが2つのだけの行(値「A」と「C」)のためになります。解決のために
、私はそのような
SELECT t1.`item`, t2.`id`, t2.`value`
FROM
...
AS t1
LEFT JOIN `my_table` AS t2 ON t2.`id` = t1.`item`
として、idを([1, 2, 3, 4]
)の完全なリストを供給し、テーブルデータであることを参加左、一時テーブルのいくつかのフォームの線に沿って考えています。しかしそれ、どうやったら出来るの?
これも可能ですか?あるいは、結果を外部コードの最初のリストと比較することが本当に必要なのでしょうか? (これは可能ですが、私の場合のように自明ではなく、識別子は整数ではありません)
(これの究極のアイデアは、すべての入力IDを持つDBの結果セットが欲しいということです。簡単に非既存のレコードを識別)
がアップデート:私はそれが問題に帰着推測:どのように私は(私の)SQLサーバから結果は、このような
id
---
1
2
3
4
として設定し取得することができますはこれを何らかのテーブルのデータとして持っていませんが、いくつかのクエリでデータを設定することからですか?