SELECT a.* , b.* , c.* FROM `資料表1` as a JOIN `資料表2` as b ON a.`索引欄位`= b.`索引欄位` JOIN `資料表3` as c ON b.`索引欄位`= c.`索引欄位` WHERE a.欄位='值' AND …. ``` 2. 「left join」代表以左邊為主,順便到右邊撈撈看有無指定的資料。 3. 「right join」代表以右邊為主,順便到左邊撈撈看有無指定的資料。 4. 「join」代表兩邊都要同時有資料,否則該筆資料不會出現。 5. 以本例而言,讀出報名者編號,順便讀出報名者資料的寫法: ``` //區塊主函數:列出所報者 function list_signup($options) { global $xoopsDB; if ($_GET['action_id']) { $signups_tbl = $xoopsDB->prefix('signups'); $users_tbl = $xoopsDB->prefix('users'); $action_id = intval($_GET['action_id']); $sql = "SELECT a.*, b.* FROM `{$signups_tbl}` AS a JOIN `{$users_tbl}` as b ON a.`uid` = b.`uid` WHERE a.`action_id` = '{$action_id}'"; $result = $xoopsDB->query($sql) or web_error($sql); $signups = []; while ($val = $xoopsDB->fetchArray($result)) { $signups[] = $val; } return $signups; } } ``` 6. 此處用 join,表示一定要有會員資料,否則就不秀出來。 ### 二、修改樣板 1. 修改 \\templates\\side\_signups.tpl 把 uid 改成 name就可以了,這裡順便加上 Email ```
//區塊主函數:列出所報者 function list_signup($options) { global $xoopsDB; if ($_GET['action_id']) { $signups_tbl = $xoopsDB->prefix('signups'); $users_tbl = $xoopsDB->prefix('users'); $action_id = intval($_GET['action_id']); $sql = "SELECT a.*, b.* FROM `{$signups_tbl}` AS a JOIN `{$users_tbl}` as b ON a.`uid` = b.`uid` WHERE a.`action_id` = '{$action_id}'"; $result = $xoopsDB->query($sql) or web_error($sql); $signups = []; while ($val = $xoopsDB->fetchArray($result)) { $signups[] = $val; } return $signups; } } ``` 6. 此處用 join,表示一定要有會員資料,否則就不秀出來。 ### 二、修改樣板 1. 修改 \\templates\\side\_signups.tpl 把 uid 改成 name就可以了,這裡順便加上 Email ```
進階搜尋