복붙노트

[SQL] 이 표에서 간단한 SQL 선택 (A 무엇을 가입한다?)

SQL

이 표에서 간단한 SQL 선택 (A 무엇을 가입한다?)

나는 SQL에 새로운 해요. 나는 두 개의 서로 다른 테이블에서 결과를 얻는 간단한 문제가 있습니다.

나는 데이터베이스에 두 개의 테이블이있다. 첫 번째 테이블은 테이블의 행에 대응하는 ID 참조하면, 컬럼을 갖는다. 나는 ID가 두 번째 테이블의 모든 값에 의해 repalced되도록 결과를 얻기 위해 수행해야 할 무엇을 선택합니다. 내가 논의하고있는 테이블을 시각화합니다 :

TABLE_USERS
===========
id      username      group
--      --------      -----
1       jim           A
2       alice         A
3       brandon       B

TABLE_GROUPS
============
id      groupname         members
--      ---------         -------
A       designer          134
B       photographer      39

DESIRED_SELECTION
=================
id      username      group
--      --------      -----
1       jim           designer
2       alice         designer
3       brandon       photographer

감사!

해결법

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

    1.당신은, 사실, 두 테이블을 가입하고 싶어 :

    당신은, 사실, 두 테이블을 가입하고 싶어 :

    SELECT * FROM
        TABLE_USERS LEFT JOIN TABLE_GROUPS 
        ON TABLE_USERS.group = TABLE_GROUPS.id
    

    테이블을 조인의 비결은 두 테이블에서 일치해야하는 값을 찾아, 그들에 맞게 SQL을 알리려면을에 사용하는 것입니다. 이 테이블은 필요가 동일하게 그 값을 표시 한 후 당신이 당신이 테이블 ON 참여합니다 =하자, 그리고 할 수있는 ID 열이 있습니다.

    당신은 두 테이블의 모든 열을하지 않으려면, 당신은 단순히 당신이 당신의 마지막 쿼리에 필요한 컬럼 만 나열 할 수 있습니다. 대신 선택 *, 당신은 당신이 원하는 열을 나열이 의미합니다. 아래와 같이 열이 두 테이블에 같은 이름으로 나타나는 경우, 당신은 SQL의 노하우가있는 값을 원하는 그래서, 테이블 이름을 씁니다.

    SELECT TABLE_USERS.ID, Username, Groupname 
      FROM TABLE_USERS 
         LEFT JOIN TABLE_GROUPS 
         ON TABLE_USERS.group = TABLE_GROUPS.id
    
  2. ==============================

    2.당신은이 가입합니다 :

    당신은이 가입합니다 :

    SELECT
        u.id,
        username,
        groupname
    FROM
        TABLE_USERS AS u
    LEFT JOIN TABLE_GROUPS AS g
        ON u.group = g.id
    
  3. from https://stackoverflow.com/questions/11040587/simple-sql-select-from-2-tables-what-is-a-join by cc-by-sa and MIT license