我有如下表:SQL連接獲得2列的笛卡爾積了3列
create table #table (
time int,
key char(1),
val int
)
數據如下:
insert into #table (time, key, val) values (0,"a",1)
insert into #table (time, key, val) values (0,"b",2)
insert into #table (time, key, val) values (1,"a",10)
insert into #table (time, key, val) values (2,"b",20)
,我想拿出一個加入將產生以下行/列:
0 a 1
0 b 2
1 a 10
1 b 0
2 a 0
2 b 20
這基本上是笛卡爾乘積值的前2列ns以及它們在第三列中的相關值(當值存在時),否則爲0。
我嘗試了一些外連接的組合,但它們都沒有工作。
請幫忙。
謝謝。
嘗試連同多個子表(即'(從#table中選擇鍵)作爲key_table')以及整個表。另外,我在'key'(一個關鍵字)和'#table'('#'是一個註釋開始(至少在MySQL中)「)時遇到了問題 –
字符串常量需要用SQL中的單引號括起來,而不是雙引號。 '「a」是一個標識符,''a''是一個字符串常量。你正在使用哪個DBMS? –
對不起,我應該提到我使用Sybase ASE(應與MSSQL的語法相同)。這解釋了#table表示一個臨時表 –