mysql> select id, groupid, name from users;
+----+---------+-------+
| id | groupid | name |
+----+---------+-------+
| 1 | 1 | johan |
+----+---------+-------+
1 row in set (0,00 sec)
mysql> select id, groupname from usergroup;
+----+---------------+
| id | groupname |
+----+---------------+
| 2 | administrator |
| 3 | guest |
| 4 | member |
| 1 | root |
+----+---------------+
4 rows in set (0,00 sec)
Nu heb ik het volgende voor mijn join query:
<?php
if($cols != '*' && is_array($cols)){
$cols = implode(',u.', $cols);
}
$sql = "SELECT $cols, g.groupname, g.othercol FROM users u INNER JOIN usergroup g ON u.groupid = g.id WHERE u.id = ? LIMIT 1";
?>Kan dit beter, is het efficiënt en het meest belangrijke, doe ik het goed?
Want $cols kan ook '*' zijn dus eigenlijk word de query:
$sql = "SELECT *, g.groupname, g.othercol FROM users u INNER JOIN usergroup g ON u.groupid = g.id WHERE u.id = ? LIMIT 1";Wat prima werkt volledig naar behoren maar misschien dat het beter kan omdat het een beetje raar staat.