sql - using outer alias in mysql subquery -
i writing mysql query , have question. can / how do this:
select rating, user_id, ( -- in here want write subquery number of times user_id in outter query has rated teacher ) user_rated_frequency teachers_rating teacher_id = id
essentially trying data , frequency in user rated teacher. possible use alias 1 of items want select in subquery still in select , not in clause?
check out this ...
select rating, user_id, (select count(*) teachers_rating t1 teacher_id = 3 , t1.user_id = t2.user_id) user_rated_frequency teachers_rating t2 teacher_id = 3;
or that one:
select avg (rating) average_rating, user_id, (select count(*) teachers_rating t1 teacher_id = 3 , t1.user_id = t2.user_id) user_rated_frequency teachers_rating t2 teacher_id = 3 group user_rated_frequency;
links above show sql fiddle example assuming id
3
.
alternatively have sub query in from
clause:
select avg (t1.rating), t1.user_id, t2.user_rated_frequency teachers_rating t1, (select tr.teacher_id, tr.user_id, count(*) user_rated_frequency teachers_rating tr group tr.teacher_id) t2 t1.teacher_id = t2.teacher_id , t1.user_id = t2.user_id group user_id, user_rated_frequency
hat @ fiddle.
Comments
Post a Comment