我在SQLITE意外LEFT OUTER JOIN行爲SQLite中
兩個表「端口」 是
ticker weight
abc 1
bcd 2
cde 3
「bench2」 是
ticker weight
abc 3
bcd 2
cde 1
和我試着去學習如何使用SQLITE中的外連接。 JOIN用LEFT OUTER開始如下
SELECT * FROM port LEFT OUTER JOIN bench2 ON port.ticker = bench2.ticker;
我得到的結果
ticker weight ticker weight
abc 3 NULL NULL
bcd 2 bcd 2
時,我希望看到
ticker weight weight
abc 1 3
bcd 2 2
cde 3 1
什麼我做錯了,我會怎麼弄我想要的結果?如果可能的話
第二個問題 - 我怎麼能拿的
ticker weight weight
abc 1 3
bcd 2 2
cde 3 1
def NULL 3
額外行的結果表,如果「bench2」有一個額外的行,
ticker weight
abc 3
bcd 2
cde 1
def 3
而port
保持不變。
修復問題,使表和列名始終貫穿始終。 – 2014-11-21 14:24:04
你應該在你的結果中得到兩個'ticker'和兩個'weight'列,但是如果你確實得到了你用數據描述的結果行並且查詢了你的結果,那麼SQLite會出現一些錯誤。我更傾向於認爲你的數據與你說的不同,或者你可能已經執行了不同的查詢。 – 2014-11-21 14:34:28
http://sqlfiddle.com/#!5/de483/1 – Wiseguy 2014-11-21 14:41:14