在MySQL(或SQL在普通),是有可能產生預先定義的標識符的列表,可能不存在的鍵與匹配表數據連接?與連接的數據連結預定義,與表數據
id | value
---+------
1 | 'a'
3 | 'c'
現在,我有可能id
值的列表,並希望得到這些值的完整列表,一起:
就拿下面的表中的數據,姑且稱之爲my_table
從上面的表格。與列表[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)
產量的查詢只導致兩行(值 'a' 和 'c')中。
解決的辦法,我沿着某種形式的臨時表的思路,用的ID([1, 2, 3, 4]
)的完整列表,美聯儲和左側的接合部,與表中的數據,如
SELECT t1.`item`, t2.`id`, t2.`value`
FROM
...
AS t1
LEFT JOIN `my_table` AS t2 ON t2.`id` = t1.`item`
但我怎麼做?
這甚至可能嗎?還是真的有必要將結果與外部代碼中的初始列表進行比較? (這將是可能的,但不是小事在我的情況下,標識不是整數)
(這樣做的最終想法是,我想從數據庫中設置的所有輸入ID的結果讓我能輕鬆識別不存在的記錄)
更新:我想它歸結爲一個問題:我如何能得到如
id
---
1
2
3
4
從(我的)SQL服務器結果集無需此如在一些表數據,但從一些查詢中設置數據?