看板 Database 關於我們 聯絡資訊
※ 引述《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