オブジェクトに関する与えられた情報: id、user_id、group_id
ユーザーに関する与えられた情報: id_user、id_loc
1 つのクエリを取得する必要があります。
ユーザーの名前 (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 構文にエラーがあります。3 行目の 'AND locs.id = 3 LIMIT 1' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
私は何を間違っていますか?これを 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';
それが役立つ場合、私はこれを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;
}