說實話博主在mysql方面的基礎和積累是比較差的,最近在寫業務sql的時候就踩到了乙個坑,雖說只是個小坑但也折騰了我幾小時才爬出來。
相信很多小夥伴在寫sql語句的時候都會碰到給字段起別名的時候,在進行多表查詢時,如果有兩張表的字段是一樣的而你又得把這兩個欄位全查出來,這時你就需要給這兩個欄位起別名了,又或者你覺得這個字段不夠明確也得起別名,但起別名的時候千萬注意下面的這個問題。
比如你有一張使用者資訊表tb_user_info,表中有三個字段 id、name、age
這時你想查出年齡大於18歲的使用者,於是有了以下sql語句
select
id,`name` username,
age userage
from
tb_user_info
where
userage > 18
這時各位小夥伴有沒有看出問題啊–_--!
沒錯,就是別名問題,博主的標題就寫有了
但你得知道錯在**?,又是怎麼錯的?,又怎麼修改呢?
如果這些都不知道那說明你跟博主一樣,進步空間很大啊!
如果執行以上語句,現實會給你當頭一棒
unknown column 『username』 in 『where clause』???為什麼?我在那裡?我是誰?
這個錯誤的大概意思是 在where的username列是未知的
這是因為取了別名的字段不能在where裡面當做當初條件,在同一級裡別名是不識別的
那怎麼辦?
有的小夥伴可能會把別名去掉,心想那我不取別名不就行了,但現實是有些情況是必須要取別名的,就比如博主說的多表查詢情況
問題又來了那又怎麼辦呢?
其實很簡單,同一級不識別那我再套一級不就行了
select
* from
( select id, `name` username, age userage from tb_user_info ) t
where
userage >
18
執行
美滋滋!-_-
不知道你的問題解決了麼?
個人博主如何打造乙個人氣部落格
擁有乙個部落格不管是做什麼都有一定的誠信。偏偏很多人認為部落格無法實現 應有的東西。很多時候部落格被用作推廣的手段,對此,筆者通過瀏覽網路上的一些部落格發現,有與眾不同的地方,即使是用來推廣的,那麼也應該做好相關的工作,不能成功便成仁嘛,所以今天筆者就說說如何打造乙個人氣部落格所需的基本因素。部落格...
記錄乙個MySQL的問題
昨天做asp.net mvc程式,用mysql.data.entity.ef6做資料連線。程式都是正常的,但就是提交資料的時候總是提示 specified key was too long max key length is 767 bytes異常。搞了好久也不知道啥原因,網上查的方法也通通不好使。...
mysql共享主鍵 SQL,兩個表,乙個共享主鍵
我想要有兩個表,所以我可以將舊記錄移動到第二個表,所以我保持主表小,但仍然希望能夠鏈結到兩個表使用乙個int首要的關鍵。我已經簡化了這個例子,從我真正的 中得到了什麼 我保留了一些會話,並且希望將過期會話移動到expired sessions表中,但我也將會話鏈結到日誌表,如login attemp...