看板 Database 關於我們 聯絡資訊
這個要順便推薦一個好用的函式, 我以前在PHP官網上找到的, 一直用到現在, 覺得實在好用. (再配合上smarty, 要快速打造 一個後台管理具有CRUD的操作頁面非常快. 自己就能搞一個簡單 的framework) SQL就照直覺打: 假設ta是主表, tb, tc, td都是與ta關聯的副表, 全部都是以sn欄位建立關聯. $sql=" select ta.*,tb.*,tc.*,td.* from ta left join tb on ta.sn=tb.sn left join tc on ta.sn=tc.sn left join td on ta.sn=td.sn "; 然後: //$link是資料庫連線資源,已建立. $resultset = new mysql_resultset(mysql_query($sql,$link)); while($b=$resultset->fetch()){ print_r($b); //這個撈出來的記錄就自動幫你將所有欄位按照所屬的table分類好,非常省事. } //好用的資料查詢物件: 取自php官網之mysql_fetch_array的使用手冊範例 class mysql_resultset { var $results, $map; function mysql_resultset($results) { $this->results = $results; $this->map = array(); $index = 0; while ($column = mysql_fetch_field($results)) { $this->map[$index++] = array($column->table, $column->name); } } function fetch() { if ($row = mysql_fetch_row($this->results)) { $drow = array(); foreach ($row as $index => $field) { list($table, $column) = $this->map[$index]; $drow[$table][$column] = $row[$index]; } return $drow; } else return false; } } ※ 引述《andreli (小狗跟正妹是我的死穴)》之銘言: : 最近在修改一個網站, 使用MySQL 5.1.36 : 在select的時候, 因為原作者在很多資料表上都使用相同名稱, : 像是每個資料表的流水號都叫sn : 所以我在select join兩個資料表的時候因為都使用*來當作欲選取欄位(就是全選), : 我自己猜想是不是因為這樣的關係產生出Duplicate column name 'sn'的錯誤訊息。 : 如果想要解決, 有什麼好方法嗎? : 還是只能一個一個慢慢select出來, 不要使用*呢? : 謝謝各位前輩的回覆。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.115.151.184
PsMonkey:嗯... 前端語言的解法... 嗯... 有點脫離版旨啦 XD 11/02 13:04