我經常使用PostgreSQL,並且我觀察到某些等式連接會將參與等式比較的兩列合併到結果集中的一列中,有些則不會。這似乎與連接是否爲INNER或OUTER有關,也與連接條件是否使用USING語法或ON語法表示有關。我想知道什麼時候這兩列被摺疊/合併爲一個,甚至更好:我想知道這個行爲在哪裏指定。什麼時候SQL連接的結果會將兩列合併爲一個?
-1
A
回答
2
時using
使用
create table a (id int);
create table b (id int);
select *
from
a
inner join
b using (id);
id
----
(0 rows)
如果on
使用它會返回兩列將崩潰:
select *
from
a
inner join
b on a.id = b.id;
id | id
----+----
(0 rows)
而且沒有一個表名資格列是曖昧
select id
from
a
inner join
b on a.id = b.id;
ERROR: column reference "id" is ambiguous
LINE 1: select id from a inner join b on a.id = b.id;
outer join
select *
from
a
full outer join
b on a.id = b.id;
id | id
----+----
(0 rows)
+1
可能值得一提的是,即使在使用默認輸出合併列的單個實例的USING子句進行連接時,表限定引用總是有效。 –
+1
@Erwin好,我不知道這件事。 –
+0
這是在SQL標準中的某處指定的嗎? – BlueBomber
相關問題
- 1. 將兩個查詢的結果合併爲一個結果SQL
- 2. 兩個連接的合併結果
- 3. MySQL - 合併兩個連接結果
- 4. 將一個sql查詢的結果合併爲一個結果
- 5. 合併兩個SQL查詢結果爲一個結果
- 6. 將兩個SQL選擇合併爲一個結果
- 7. Rails將兩個對象合併爲一個結果散列
- 8. 將結果集中的SQL「合併」列合併到一個結果集中
- 9. SQL:合併/連接兩列的計數
- 10. 爲什麼不會合並或爲空工作結果從左連接?
- 11. 將兩個表合併成一個結果集sql服務器
- 12. 的Sql合併兩個結果集
- 13. SQL查詢到兩行合併爲一個作爲結果
- 14. 爲一個結果合併SQL查詢
- 15. 將兩個列結果的一列結果SQL
- 16. 將數據集的兩個結果合併爲一個
- 17. SQL查詢合併結果表的一列中兩個表的兩列?
- 18. 將兩個結果合併到一個結果集中mysql
- 19. 連接兩個列,並將結果繪製成圖形
- 20. SQL連接和左外連接:爲什麼結果不同?
- 21. 將兩個不同選擇的結果合併爲一個獲得結果集
- 22. SQL將兩種方式連接到一個結果
- 23. SQL將兩行合併爲一個
- 24. JavaScript - 連接兩個數字並將結果視爲數字
- 25. 在T-SQL中使用多個結果集並結合連接
- 26. SQL Oracle-合併兩個結果集爲一體
- 27. 帶有CodeIgniter的PHPExcel將兩個不同的列合併爲一個結果
- 28. 如何將這兩個結果合併爲一個在mysql中?
- 29. Rails將兩個關係合併爲一個結果
- 30. 將兩個字典合併爲一個結果字典
請您提供SQL語句嗎? – sarin
這個問題很好,但它*需要一個代碼示例。請更新。 –
@ErwinBrandstetter,由於以下兩個原因,不添加代碼示例:1)通過下面的答案可以證明這很容易理解,並且2)下面提供了一個很好的示例。我仍然想知道在哪裏,除了postgresql文檔以外,它指定USING子句具有這種行爲。 – BlueBomber