2012-07-16 69 views
0

排除外鍵我有一些SQL加入了幾桌一起從SQL查詢

SELECT contact.contact_id, 
     form1.*, 
     form2.* 
FROM contact 
INNER JOIN form1 
ON contact.contact_id = form1.contact_id 
INNER JOIN form2 
ON contact_contact_id = form2.contact_id 

我想避免在我的輸出重複「CONTACT_ID」一欄,而不必在桌子上寫的每個字段名稱(即我想繼續使用form1.*form2.*,因爲這會使報告更容易維護 - 字段可能會更改)。這可能嗎?我正在使用Postgres。

+2

http://stackoverflow.com/questions/3650689/sql-exclude-a-column-from-select-query – 2012-07-16 10:09:11

回答

1

唯一的方法是「不要使用*」。您需要明確輸入所需的列。當您使用JOIN時,這是一個很好的做法。如果列太多,使用結果的

select column_name from information_schema.columns 
where table_name='your table' and column_name<>'contact_id' 
+0

當你說'利用結果'時,你是以編程的方式思考,還是你在談論切割和粘貼? – 2012-07-16 10:48:47

+0

我的意思是隻複製/粘貼 – Madhivanan 2012-07-16 11:25:21

1

如果CONTACT_ID是唯一的列名,該表共享,你可以使用「自然連接」連接表,你會最終只有一個加入列的副本。

+0

將我引向'使用'而不是'自然'。但是這兩個語句似乎都需要'SELECT * FROM' - 我不能指定一些列,然後讓'NATURAL'處理其餘部分。 – 2012-07-16 10:50:48