鍍金池/ 問答/數(shù)據(jù)庫/ sql數(shù)據(jù)庫中,多表查詢時,是否有語句可以查詢除了某個字段以外的所有字段?

sql數(shù)據(jù)庫中,多表查詢時,是否有語句可以查詢除了某個字段以外的所有字段?

clipboard.png

這么寫sql語句的話,會導(dǎo)致id出現(xiàn)兩次,想問下有沒有個語句可以排除掉第二次的id1?
比如說select *,not(tt.id) from tt INNER JOIN test1 on tt.id=test1.id(我編的),這種意思的語句?

我知道有一個是可以實現(xiàn) 就是
select tt.id,tt.is_deleted,test1.name from tt INNER JOIN test1 on tt.id=test1.id
但是這是字段少的時候,如果字段多,寫起來就會很復(fù)雜。

回答
編輯回答
做不到

select tt.*,test1.name from tt inner join test1 on tt.id=test1.id圖片描述

2017年3月14日 11:21
編輯回答
局外人

最簡單的辦法就是,對這兩張表建立一個視圖表,建視圖時選擇必要的字段信息。然后查詢就直接查詢視圖了,很好的避免了你遇到的這種問題。

2018年5月8日 14:27
編輯回答
兮顏
DECLARE @Except VARCHAR(1000)

SET @Except=''

SELECT @Except=@Except+','+NAME FROM SYSCOLUMNS WHERE ID=OBJECT_Id('你的表名') AND NAME<>'你要排除的字段'

SET @Except=STUFF(@Except,1,1,'')

EXEC('SELECT '+@Except+' FROM 你的表名')

--只需將三個地方分別替換為你的表名和字段就行了

這是我原測試表查詢結(jié)果:
圖片描述

這是排除Id這一列后的查詢結(jié)果:
圖片描述

成功將Id列排除

2017年8月4日 08:13