Concat 문자열을 인수로 사용하여 두 개의 테이블에 대한 SQL 왼쪽 가입

StackOverflow https://stackoverflow.com//questions/9682509

  •  13-12-2019
  •  | 
  •  

문제

표 2에서 제목을 가져와야합니다. 표 2에는 제목 및 ID 열이 있습니다. 표 1에는 일부 데이터가 있고, 이들 열 중 3 개가 함께 Concatenated Makeup을 표 1에서 찾을 수 있습니다.

Concat_WS () 함수를 사용 하고이 열을 별칭 이름으로 지정하고 on 인수에 대한 별칭을 사용할 필요가 있습니다 (적어도 이것은 내가해야 할 일이 필요로하는 것)

이것은 이것이 단순한 왼쪽 가입 일 수 있다고 생각했지만, 그것은 나에게 일하지 않습니다.

내 쿼리

입니다

SELECT
    table_openers.mail,
    table_openers.f_name,
    table_openers.l_name,
    table_openers.Quality,
    CONCAT_WS('-',
            table_openers.esp,
            table_openers.acc,
            table_openers.group) as 't1aid',
    table_groups.aid,
    table_groups.group_name
FROM
    lance_mailstats.table_openers
        LEFT JOIN
    lance_mailstats.table_groups ON table_groups.aid = t1aid;
.

메일, f_name, l_name, 품질 및 t1aid에 대한 결과가 발생했지만 두 번째 테이블의 AID 및 group_name 열은 null을 반환합니다.

도움이 되었습니까?

해결책

ON 절에서 별칭을 사용할 수없는 것처럼 느껴집니다.

를 시도하십시오
LEFT JOIN
    lance_mailstats.table_groups ON table_groups.aid = CONCAT_WS('-',
            table_openers.esp,
            table_openers.acc,
            table_openers.group);
.

"그룹의 별칭을 그룹별로 사용할 수 있습니다.

및 "On과 함께 사용 된 conditional_expr은 dev.mysql.com/doc/refman/5.1/ko/join.html에서 사용할 수있는 양식의 조건부 표현식입니다.

논리적 인 추론을 사용하여 조항에 별칭을 사용할 수 없습니다.

다른 팁

하위 쿼리를 사용해보십시오. .. 그것은 이렇게됩니다 .........

ex.

선택 tbl1.mail, tbl1.f_name, tbl1.l_name, tbl1.quality, tbl1.t1aid, table_groups.aid, table_groups.group_name

    FROM

       (SELECT
              table_openers.mail,
              table_openers.f_name,
              table_openers.l_name,
              table_openers.Quality,
                CONCAT_WS('-',
                   table_openers.esp,
                   table_openers.acc,
                   table_openers.group) as 't1aid',
             FROM
             lance_mailstats.table_openers )tbl1

       LEFT JOIN
       lance_mailstats.table_groups ON table_groups.aid = tbl1.t1aid;
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top