隨機記錄工作中常見的sql用法錯誤(一)

2022-08-30 13:00:21 字數 1177 閱讀 7902

網上很多類似動軟生成器的小工具,這類工具雖然在表關係複雜的時候沒什麼軟用,但是在一些簡單的表結構關係還是很方便的。想起以前開始工作的時候經常犯的錯誤。

現在就寫個簡單的錯誤,大神可能一眼就看出來了,不過新手需要了解一下的。

create table uc_counter

id int identity(1, 1) primary key,

memberid int 

create table uc_member

id int ,

name nvarchar(50) ,

不討論這個表設計的合不合理,uc_counter的memberid 關聯的是uc_member的id 

select (select top 1 name  from uc_member a where a.memberid = id ) from uc_counter

很多**生成器查出資料時類似 select * from uc_counter的語句,自己只需輸入查出條件 ,查出內容(用過的應該知道,就不仔細說了),

上面那段**時想查出對應uc_member的那麼字段, 不過會失望的。

上面那段**的可以翻譯成

select (select top 1 name  from uc_member a where a.memberid = a.id ) from uc_counter

所以我會加個top 1,因為這樣子查詢可能會多條資料報錯,多個字段相同伺服器辨別不出來,找尋的是最近乙個表字段,

正確的寫法:select (select top 1 name  from uc_member a where a.memberid = b.id ) from uc_counter b

但是**生成器怎麼可能給你在表後面加別名,所以推薦那些想用**生成工具的人,建表的時候,表關係相連的表對應欄位名稱最好不同

create table uc_counter

id int identity(1, 1) primary key,

memberid int 

create table uc_member

mid int ,

name nvarchar(50) ,

select (select top 1 name  from uc_member a where a.memberid = mid  ) from uc_counter

工作中常用SQL語句

新增列 執行下列命令,列會預設新增到表字段末尾 alter table 表名 add column 列名 varchar 30 如果想指定字段位置,可以使用mysql提供的first 設定為第一列 和after 設定位於某個字段之後 first和 after關鍵字只用於 add 子句 刪除列 alt...

工作中常用的git命令 記錄

git branch 建立分支 git branch b 建立並切換到新建的分支上 git checkout 切換分支 git branch 檢視分支列表 git branch v 檢視所有分支的最後一次操作 git branch vv 檢視當前分支 git brabch b 分支名 origin ...

SQL中常見函式的用法

1replace函式 在sql server 2000中有乙個資訊表,存放新聞資訊,現在客戶想批量更新這個欄位中的某些文字,替換為其他文字。解決方法 利用replace函式 update detail set content replace content,原文本 替換後文字 where 條件 構造...