Odbc
左外連接可能嗎?
我有一個需要解決的問題,希望你們中的一些人能提供幫助。
我有一個文章表(表 A)
Article Description A43234 desk A42323 paper A43235 chair
和一個屬性表(表 B)
Attribute Article Value height A42323 120cm width A42324 200cm material A42323 wood price A43235 chair
並非每篇文章在表 B 中都有屬性。但如果表 A 中的文章有材料屬性條目,那麼它應該在結果中。如果沒有材料屬性條目,那麼它應該是一個空字元串。結果應該是:
Article Attribute Value A42323 paper wood A42324 desk "" A42325 chair ""
我的點子:
SELECT a.Article, a.Description, a.DLV, b.Value from tableA a join tableB b on a.Article = b.Article and b.Attribute = 'material'
謝謝!
我了解您希望每篇文章都有材料記錄,即使屬性表中不存在此類記錄。
您可以將您的選擇分成兩部分:
- 材料合二為一 - 獲取所有文章的材料
- 第二個所有其他屬性
然後你可以做UNION:
SELECT a.Article, a.Description, 'material' AS Attribute, COALESCE(b.Value, '') AS Value FROM article AS a LEFT JOIN attribute AS b ON a.Article = b.Article AND b.Attribute = 'material' UNION ALL SELECT a.Article, a.Description, b.Attribute, b.Value FROM article AS a LEFT JOIN attribute AS b ON a.Article = b.Article AND b.Attribute <> 'material';
輸出:
Article Description Attribute Value A43234 desk material "" A42323 paper material wood A43235 chair material "" A43234 desk NULL NULL A42323 paper height 120cm A43235 chair price chair
我使用了 T-SQL 並將 JOIN 更改為 LEFT JOIN,正如評論中指出的那樣,因為您失去了沒有屬性的文章。