看板 Database 關於我們 聯絡資訊
※ 引述《grence (多想兩分鐘 = =")》之銘言: : ※ 引述《andreli (小狗跟正妹是我的死穴)》之銘言: : : 我列一下原始的SQL, : : --SELECT COUNT(*) _count_ FROM ( : SELECT COUNT(1) _count_ FROM ( 改了之後仍舊一樣會出現錯誤, 是我的能力太差了, 又沒辦法把整個code弄出來給大家看, 實在不好意思。 不好意思, 我還想問 _count_ 是特殊的保留字還是用法嗎? 因為我看欄位名稱裡面好像沒這東西, 還是我沒看到... : : -- SELECT p.*, m.* FROM cmn_product p : SELECT p.product_hits FROM cmn_product p : : JOIN cmn_member m ON p.owner_ = m.sn_ : : WHERE p.enabled_ = 1 AND p.visible_ = 1 AND m.enabled_ = 1 AND : : m.verify_ = 1 AND m.advance_ = 1 : : GROUP BY m.name_ : : ORDER BY p.product_hits DESC : : ) t : 你的問題我沒碰過。 : 不撈沒用到的欄位通常是好習慣, : 但是我不知道你的狀況,憑感覺亂寫的,不一定能用… : 欄位名稱重複很常見,命名太有創意有時是困擾。 : 但是,JOIN... p.owner_ = m.sn_ 這有點怪,兩個表的 sn_是不一樣的東西? 我知道命名名稱太有創意可能會是種困擾... 可是像這個case, 每個表的流水號都叫sn_。 會員資料的表流水號叫sn_, 產品資料的流水號也叫sn_, 這個架構看得我一個頭兩個大, 什麼都叫sn_, 十幾二十個表, 通通都叫sn_卻都裝不一樣的資料... 可能我自己沒待過公司訓練過, 所以不知道業界在設計欄位名稱大都是怎樣的習慣。 還是有什麼IDE是支援這樣設計的啊...欄位名稱後面都還愛加個底線來命名... : 我也不知道最後都加底線有什麼用 : : 上面是接手人家的程式慢慢找出來可能發生錯誤的地方的原始碼, : : 錯誤代碼和訊息是1060的Duplicate column name 'sn_' : : 我將SQL中sub select p.*,m.*的部份改成m.sn_, m.id...就可以正常select了, : 這很謎.... : 改了之後有另給別名嗎? m.sn_ sn1, p.sn_ sn2 ...之類的? 沒有, 我沒有再給別名, 不過確定的是的確排除掉直接使用*來撈資料就沒問題了。 : : 兩個資料表中欄位的流水號auto increasement都是叫sn_, : : 我一開始也是往別名錯誤的地方想, 可是收設了還是不行。 : : 不知道各位前輩有沒有別的想法或看法呢? : : 另外我想問, 所有的資料表流水號叫sn_這樣的設計方法好嗎? : : 因為就我自己之前設計時, 每個資料表的流水號名稱都會取跟資料表名稱有關, : : 像是member_detail, 我就會取md_sn或md_id這樣子, 讓我之後好分辨與取值, : : 但是原本製作這程式的也算一間有點規模的公司, : : 想請問各位前輩, 這樣製作上有什麼好處呢? 還是它在搭配smarty有啥好處呢? : : 謝謝各位前輩的指教, 謝謝! 對不起, 因為版上規定不能連續推文的時間實在有點太長... 所以我就只好回文了。 謝謝大家花了寶貴的時間看這篇文章, 真的謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.11.67.143 ※ 編輯: andreli 來自: 124.11.67.143 (11/02 00:28)
grence:1._count_只是原作取的別名 2.這命名風格不常見;習慣就好. 11/02 02:24