作者starjou (周星星)
看板Database
标题Re: [SQL ] 两个资料表有同样的栏位名称
时间Sun Mar 2 07:49:58 2008
※ 引述《JYHuang (夏天到了,冷不起来了说)》之铭言:
: 标题: [SQL ] 两个资料表有同样的栏位名称
: 时间: Fri Feb 29 19:57:09 2008
: 我有两个Table,都有Price这个栏位。
: 其中一个是要以另一个再正规化细分出来的。
: 因为还在程式跟资料库都还在改版,还不敢将旧的资料表中的Price砍掉。
:
: 想请问一下如何在Select时合并两个资料库
: 然後以更正规化的那个资料中的为准?
:
: 我想要select的price以product_spec的为准(avg,max or min)
: 试过left join似乎也不能"盖过去"
:
: google了一下join也找不到想要的写法..
: 只好来请问一下database版 ^^"
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 220.133.249.240
: 推 starjou:SELECT Product_spec.price 02/29 21:02
: → JYHuang:有试过,不过选出来的结果有两个price栏位说 03/01 12:52
: 推 starjou:你是不是用了 *? 把要的栏位一个一个按 table.field 指定 03/01 17:34
: → JYHuang:所以还是要采用选择field的方式嘛.. 03/01 23:30
: 推 starjou:不然呢?或是你也可以用 AS 改名字 (你 DBMS 是啥还没说) 03/02 01:20
: → JYHuang:MySQL ,目前是希望仅改SQL不改程式来达到转移的目地 03/02 03:04
不太懂你的问题到底是什麽?你说的合并是怎样合并?
我说的都是改 SQL,你说还是有两个 price 是指你是用 PHP,然後 fetch row
之後有阵列中有两个值的阵列名称都是 price ?那你的 sql 是怎麽下的?
SELECT * FROM Product, Product_spec?
如果你希望你 SQL 捞出来的资料不要有两个 price 栏位,
看你是要在 SQL 中只 SELECT 你想要的栏位,如果两个资料表有相同栏位名称时,
就要用 table_name.field_name 的方式
或是你偷懒,也不在乎浪费计忆体,就用
SELECT *, Product_desc.price AS true_price .....
这样会捞到两个 price 栏位值,但是会再把 Product_desc.price 多捞一次,
而 fetch 的时候栏位名称也会变成 true_price
或是在 SQL 里头也可以用 alias (就是你用 AS 取的代称,例如上面的 true_price)
去放在 avg, max 等函式里头。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.86.66.42