作者andreli (小狗跟正妹是我的死穴)
看板Database
标题Re: [SQL ] 重复table栏位名称 Duplicate column name
时间Mon Nov 2 00:25:43 2009
※ 引述《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)
1F:→ grence:1._count_只是原作取的别名 2.这命名风格不常见;习惯就好. 11/02 02:24