我對 SQL 很陌生,主要處理涉及登錄、基本資料的資料庫。
我正在嘗試加入 2 張桌子,但遇到了麻煩。
我有兩張表,一張是所有英國lsoa號碼的完整串列和關于郵政編碼postcode的資訊,第二張表包含有關一個地區的剝奪指數的資訊,其中還包含一個lsoa名為 的號碼depriv。
我正在嘗試通過以下格式加入這些lsoa表VARCHAR:E01000005
我的 SQL 是:
SELECT a.lsoa11, b.decile FROM postcode a
JOIN depriv b ON a.lsoa11=b.lsoa
這不回傳任何內容,空表
但:
SELECT a.lsoa11, b.decile FROM postcode a
LEFT JOIN depriv b ON a.lsoa11=b.lsoa
正確回傳lsoa11表列,但decile列只是(NULL)
我究竟做錯了什么?
SQL
|
|-postcode
| |-lsoa11 { 'E01000001'; 'E01000002'; 'E01000003' }
| |-pcd { 'EH1 1GF'; 'EH1 1GP'; 'EH1 5GP' }
|-depriv
| |-lsao { 'E01000001'; 'E01000002'; 'E01000003' }
| |-rank { '24,004'; '24,201'; '12,102' }
uj5u.com熱心網友回復:
JOIN表示INNER JOIN或CROSS JOIN在 MySQL 中。它根據表之間的公共列的值鏈接一個或多個表之間的資料。
LEFT JOIN選擇從左表開始的所有資料。對于左表中的每一行,它與右表中的每一行進行比較,并創建相應的新行。
因此,可以推斷,postcode并depriv沒有共同點lsoa導致這樣的結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/529137.html
上一篇:通過匯總建立總收入
