3 回答

TA貢獻2011條經驗 獲得超2個贊
SQL應該是
SELECT
u.id,
r.id AS roleid,
u.type,
r.username
FROM users u
LEFT JOIN roles r ON r.id = u.role_id
ORDER BY u.id ASC
我省略了您在 sql 中定義的一些列,因為我根本看不到它們的意義。不僅如此,它們可能看起來模棱兩可。
例如:
SELECT
users.id, // User ID
roles.id AS roleid, // Role ID
type, // User type
role_id, // Role ID (We already have it, no need for it again)
id, // What ID? This is ambiguous and will fail
username // User Username

TA貢獻1785條經驗 獲得超8個贊
像這樣試試
public function get_users()
{
$users_list = $this->dbh->query('SELECT u.id AS userid, r.id AS roleid, r.type, u.role_id, u.username FROM users as u LEFT JOIN roles as r ON u.role_id = r.id ORDER BY u.id ASC');
return $users_list;
}

TA貢獻1788條經驗 獲得超4個贊
由于兩個表都有 id 列,因此需要指定哪個表引用<table_name>.id
public function get_users()
{
$users_list = $this->dbh->query('SELECT users.id AS userid, roles.id AS roleid, type, role_id, username FROM users LEFT JOIN roles ON users.role_id = roles.id ORDER BY users.id ASC');
return $users_list;
}
- 3 回答
- 0 關注
- 143 瀏覽
添加回答
舉報