복붙노트

[SQL] 왜 MySQL은 FULL OUTER에 구문 오류가 JOIN보고는 무엇입니까?

SQL

왜 MySQL은 FULL OUTER에 구문 오류가 JOIN보고는 무엇입니까?

SELECT airline, airports.icao_code, continent, country, province, city, website 

FROM airlines 
FULL OUTER JOIN airports ON airlines.iaco_code = airports.iaco_code
FULL OUTER JOIN cities ON airports.city_id = cities.city_id
FULL OUTER JOIN provinces ON cities.province_id = provinces.province_id
FULL OUTER JOIN countries ON cities.country_id = countries.country_id
FULL OUTER JOIN continents ON countries.continent_id = continents.continent_id

그것은 말한다

구문은 바로 내 보인다. 내가 전에 조인을 많이 해본 적이 없다,하지만 난 여러 ID의에 의해 참조 크로스 테이블에서 그 열이 필요합니다.

해결법

  1. ==============================

    1.더 FULL OUTER MySQL의에 가입하지 있습니다. 7.2.12를 참조하십시오. 외부는 단순화 및 12.2.8.1에 가입하세요. 구문 가입 :

    더 FULL OUTER MySQL의에 가입하지 있습니다. 7.2.12를 참조하십시오. 외부는 단순화 및 12.2.8.1에 가입하세요. 구문 가입 :

  2. ==============================

    2.클리 터스의 대답은 매우 옳지 않다. UNION은 FULL OUTER가 포함됩니다 가입 중복 레코드를 제거합니다. 당신은 같은 것을 사용하여 중복을해야하는 경우 :

    클리 터스의 대답은 매우 옳지 않다. UNION은 FULL OUTER가 포함됩니다 가입 중복 레코드를 제거합니다. 당신은 같은 것을 사용하여 중복을해야하는 경우 :

    SELECT * FROM t1
    LEFT JOIN t2 ON t1.id = t2.id
    LEFT JOIN t3 ON t2.id = t3.id
    LEFT JOIN t4 ON t3.id = t4.id
    UNION ALL
    SELECT * FROM t1
    RIGHT JOIN t2 ON t1.id = t2.id
    LEFT JOIN t3 ON t2.id = t3.id
    LEFT JOIN t4 ON t3.id = t4.id
    WHERE t1.id IS NULL
    UNION ALL
    SELECT * FROM t1
    RIGHT JOIN t2 ON t1.id = t2.id
    RIGHT JOIN t3 ON t2.id = t3.id
    LEFT JOIN t4 ON t3.id = t4.id
    WHERE t2.id IS NULL
    UNION ALL
    SELECT * FROM t1
    RIGHT JOIN t2 ON t1.id = t2.id
    RIGHT JOIN t3 ON t2.id = t3.id
    RIGHT JOIN t4 ON t3.id = t4.id
    WHERE t3.id IS NULL;
    
  3. ==============================

    3.당신은 FULL OUTER에 필요한 세 개의 테이블 T1, T2, T3에 가입하면 그냥 사건을 보충합니다. 당신은 차례로, 왼쪽 나머지 두 테이블, 다음 조합에 가입, T1, T2, T3를 만들 수 있습니다.

    당신은 FULL OUTER에 필요한 세 개의 테이블 T1, T2, T3에 가입하면 그냥 사건을 보충합니다. 당신은 차례로, 왼쪽 나머지 두 테이블, 다음 조합에 가입, T1, T2, T3를 만들 수 있습니다.

    SELECT * FROM t1
    LEFT JOIN t2 ON t1.id = t2.id
    LEFT JOIN t3 ON t1.id = t3.id
    UNION
    SELECT * FROM t2
    LEFT JOIN t1 ON t2.id = t1.id
    LEFT JOIN t3 ON t2.id = t3.id
    UNION
    SELECT * FROM t3
    LEFT JOIN t1 ON t3.id = t1.id
    LEFT JOIN t2 ON t3.id = t2.id
    
  4. ==============================

    4.난 그냥 이것에 대한 트릭을 만들었습니다 :

    난 그냥 이것에 대한 트릭을 만들었습니다 :

    (select 1 from DUAL) d
    LEFT OUTER JOIN t1 ON t1.id = t2.id
    LEFT OUTER JOIN t2 ON t1.id = t2.id
    

    요점은 듀얼 차종에서 쿼리 수정 포인트와 MySQL 캔 외부 그에게이 개 다른 테이블을 조인입니다

  5. from https://stackoverflow.com/questions/2384298/why-does-mysql-report-a-syntax-error-on-full-outer-join by cc-by-sa and MIT license