我正在嘗試通過使用內部聯接來組合多個表來創建一個新表。所有,這些表都有一個名為 的主鍵/列reach_id。我有一個名為q3_studies. 我想要這個表中的所有列。然后我有多個其他表有reach_id another column。我想加入這個reach_id匹配的表,q3_studies但只包括其他列(所以我沒有多余的reach_id列)。如果我在最后SELECT * ...使用 a運行它,我的第一次嘗試似乎有效LIMIT 1000;,但添加了多余的reach_ids。
SELECT * FROM second_schema.q3_studies s
INNER JOIN second_schema.bs_trigger_q3 b ON s.reach_id = b.reach_id
INNER JOIN second_schema.mod_unmod_q3 m ON s.reach_id = m.reach_id LIMIT 1000;
我如何修改它以僅添加附加列(例如:bs_trigger_q3 有一個名為 的附加列bs_trigger,mod_unmod_q3有一個名為 的附加列mod_unmod)?
其次,如果我嘗試創建一個新表,我會收到一個錯誤:column reach_id specified more than one.我在這里做錯了什么?
CREATE TABLE first_schema.report_q3 AS
SELECT * FROM second_schema.q3_studies s
INNER JOIN second_schema.bs_trigger_q3 b ON s.reach_id = b.reach_id
INNER JOIN second_schema.mod_unmod_q3 m ON s.reach_id = m.reach_id;
uj5u.com熱心網友回復:
而不是select *您需要明確列出您想要的列。在任何情況下,這都是很好的做法。它還允許您重命名列,例如s.column_A as "foo_column"
將來架構可能會改變。
CREATE TABLE first_schema.report_q3 AS
SELECT
s.reach_id,
s.column_A, s.column_B,
b.column_C, b.column_D,
m.column_E, m.column_F
FROM second_schema.q2_studies s
INNER JOIN second_schema.bs_trigger_q3 b ON s.reach_id = b.reach_id
INNER JOIN second_schema.mod_unmod_q3 m ON s.reach_id = m.reach_id
;
如果您的編輯器不能幫助您處理列名稱,請考慮使用不同的編輯器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/315230.html
標籤:PostgreSQL 加入 内部联接
