※ 引述《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