2016-09-27 11 views
1

最大数のクエリを発行したユーザーとその部門の名前を表示する必要があります。私は5つのテーブルを結合して次のクエリを書いた。 user,query,profile,degree,departmentクエリでエイリアスが動作しない

この問題は、エイリアスが列名に使用されていないためです。列の両方のために、それは、MySQLでエイリアス名を使用しても、単一引用符を除去するために「as」キーワードとしてだけname

select user.name 'USER_NAME',department.name 'DEPT_NAME' 
from user 
inner join query on (query.user_id=user.id) 
inner join profile on (user.profile_id=profile.id) 
inner join degree on (profile.degree_id=degree.id) 
inner join department on (degree.department_id=department.id) 
group by user.name 
order by count(query.id) desc 
limit 1 
+2

エイリアスは –

答えて

2

を使用し表示されます。

私にとっては完璧
select user.name as USER_NAME from user; 
+0

はAS、まだ同じ結果 – PiGamma

+0

その後もテーブル名にエイリアス名を使用してみてくださいを使用してみました、単一引用符でなければなりません。 – Sagar

+0

[予約名](https://dev.mysql.com/doc/refman/5.7/en/keywords.html)は使用しないでください。必要がある場合は、常に正確にチェックしてください。 –

1

次の構文の作品:

select U.name AS "USER_NAME", D.name AS "DEPT_NAME" 
from user U 
inner join query Q on (Q.user_id=U.id) 
inner join profile P on (U.profile_id=P.id) 
inner join degree C on (P.degree_id=C.id) 
inner join department D on (C.department_id=D.id) 
group by U.name 
order by count(Q.id) desc 
limit 1; 

は時々、MySQLはあなたには、いくつかのJOINを使用するときに、あなたの列に別名をふくれっ面好みます。

1

この方法で試してください。

select thisuser.name 'USER_NAME',department.name 'DEPT_NAME' 
from user as thisuser 
inner join query on (query.user_id=thisuser.id) 
inner join profile on (thisuser.profile_id=profile.id) 
inner join degree on (profile.degree_id=degree.id) 
inner join department on (degree.department_id=department.id) 
group by thisuser.name 
order by count(query.id) desc 
limit 1 

しかし、これはクエリを作成する際にはあまり適していません。 それがこの

select thisuser.name,thisdept.name from 
(select name,user_id from user) as thisuser 
inner join 
(select name,user_id from department) as thisdept 
on thisuser.user_id = thisdept.user_id 
+0

まだ運がない.. – PiGamma

0

単にあなたのクエリから引用符を削除し、それが動作しますが、あなたはそれを明確にエイリアスを使用していることを確認するためにキーワードASを使用することができますように見えます。

また、キーワードとの混同を避けるために小文字のエイリアスを使用し、キーワードにも大文字を使用します。

SELECT user.name AS user_name, department.name AS dept_name 
... 
関連する問題