给定关于对象的信息:id、user_id、group_id
给定用户信息:id_user, id_loc
我需要得到一个查询:
用户名(在表 users 中)
用户所在位置的名称(在表 locs 中)
对象组的名称(在表组中)
我正在尝试这样:
SELECT usuarios.first_name as username
, usuarios.id as userid
, usuarios.avatar as useravatar
, usuarios.id_loc
, locs.name as locname
, groups.name as groupname
FROM usuarios,groups,locs
WHRE usuarios.id_loc = locs.id
AND usuarios.id = 1
AND group.id = LIMIT 1
有一个错误说
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“AND locs.id = 3 LIMIT 1”附近使用正确的语法
我究竟做错了什么?我可以在一个查询中做到这一点吗?
-编辑-
这是查询生成器代码(php+mysql):
$query_loc_group_user = 'SELECT usuarios.first_name as username,
usuarios.id as userid,
usuarios.avatar as useravatar,
usuarios.id_loc,
locs.name as locname,
groups.name as groupname
FROM usuarios,groups,locs
WHRE usuarios.id_loc = locs.id
AND usuarios.id = '.$this->id_user.'
AND group.id = '.$this->id_group.'
LIMIT 1';
如果有帮助,我正在尝试在一个查询中执行此操作
function get_info(){
$info;
$result = cache_query('SELECT first_name,last_name,avatar FROM usuarios WHERE id = '.$this->id_user);
foreach($result as $extra){
$info['username'] = $extra['first_name'].' '.$extra['last_name'];
$info['avatar'] = $extra['avatar'];
}
$result1 = cache_query('SELECT name FROM locs WHERE id = '.$this->id_user);
foreach($result1 as $extra){
$info['locname'] = $extra['name'];
}
$result2 = cache_query('SELECT name FROM groups WHERE id = '.$this->id; /*objectid*/
foreach($result2 as $extra){
$info['groupname'] = $extra['name'];
}
return $info;
}