programing

mysql에서 where and inner join을 사용합니다.

starjava 2023. 10. 9. 21:16
반응형

mysql에서 where and inner join을 사용합니다.

저는 테이블이 세 개 있습니다.

위치들

ID   | NAME | TYPE |
1    | add1 | stat |
2    | add2 | coun | 
3    | add3 | coun |
4    | add4 | coun | 
5    | add5 | stat | 

학교들

 ID | NAME  
 1  | sch1     
 2  | sch2
 3  |sch3 

학교_

 ID |LOCATIONS_ID |SCHOOL_ID
 1  | 1           |1
 2  | 2           |2
 3  | 3           |3

여기서 테이블 위치는 응용프로그램의 모든 위치를 포함합니다.학교 장소는 ID로 호출됩니다.

쿼리를 사용할 때

select locations.name from locations where type="coun";

"coun" 유형의 이름을 표시합니다.

하지만 school_locations만 type="coun"인 locations.name 을 표시하고 싶습니다.

문의사항을 따라가 보았지만 아무 것도 작동하지 않는 것 같습니다.

select locations.name 
from locations 
where type="coun" 
inner join school_locations 
   on locations.id=school_locations.location_id 
inner join schools 
   on school_locations.school.id=schools.id;

그리고.

select locations.name 
from locations 
inner join school_locations 
   on locations.id=school_locations.location_id 
inner join schools 
   on school_locations.school.id=schools.id  where type="coun";

쿼리에서 여러 내부 조인을 사용할 수 있습니까, 아니면 다른 방법이 있습니까?

    SELECT `locations`.`name`
      FROM `locations`
INNER JOIN `school_locations`
        ON `locations`.`id` = `school_locations`.`location_id`
INNER JOIN `schools`
        ON `school_locations`.`school_id` = `schools_id`
     WHERE `type` = 'coun';

WHERE조항은 문장의 끝에 있어야 합니다.

시도해 보기:

SELECT Locations.Name, Schools.Name
FROM Locations
INNER JOIN School_Locations ON School_Locations.Locations_Id = Locations.Id
INNER JOIN Schools ON School.Id = Schools_Locations.School_Id
WHERE Locations.Type = "coun"

위치를 학교_위치에 연결한 다음 학교_위치를 학교에 연결할 수 있습니다.이렇게 하면 관련된 모든 위치 및 학교 집합이 형성되며, 위치가 "카운" 유형인 사용자에게 WHERE 절을 사용하여 자세히 설명할 수 있습니다.

시도해 보기:

SELECT
    (
      SELECT
          `NAME`
      FROM
          locations
      WHERE
          ID = school_locations.LOCATION_ID
    ) as `NAME`
FROM
     school_locations
WHERE
     (
      SELECT
          `TYPE`
      FROM
          locations
      WHERE
          ID = school_locations.LOCATION_ID
     ) = 'coun';

원하는 만큼 조인을 사용할 수 있지만, 더 많이 사용할수록 성능에 영향을 미칩니다.

언급URL : https://stackoverflow.com/questions/1392479/using-where-and-inner-join-in-mysql

반응형