2009-09-03 89 views
0

顺序按不工作的MySql顺序按不工作MySql上

的代码如下,

select * from School where School.type = 'HighSchool' 
    order by (select locations.name from locations inner join School_locations 
     on locations.id = School_locations.location_id where 
     School_locations.School_id = School.id and locations.location_country = 'US' limit 1) 

和两个上升以及输出显示相同作为降如何解决这个问题

回答

2

我不认为你需要做子查询:

SELECT s.* 
FROM School s 
    INNER JOIN School_locations sl ON (s.id = sl.School_id) 
    INNER JOIN locations l ON (l.id = sl.location_id) 
WHERE l.location_country = 'US' AND s.type = 'High school' 
ORDER BY l.name 
+0

+1,这种方式较好。 – 2009-09-03 05:52:56

+0

感谢Buddy +1为你提供更好的答案 – 2009-09-03 06:58:52

0
select school.* from school 
    inner join school_locations on school_locations.schoolid = school.school_id 
    inner join locations on locations.location.id = school_locations.locationid 
where 
    locations.location_country = 'US' and school.type = 'HighSchool' 
order by 
    locations.name 
limit 1 
0

您可以使用此查询

select School.* from School inner join School_locations 
on School_locations.School_id = School.id 
inner join locations 
on locations.id = School_locations.location_id 
where locations.location_country = 'US' and School.type = 'HighSchool' 
order by locations.name limit 1