代码之家  ›  专栏  ›  技术社区  ›  Jake Wilson

MySQL-使用空值连接表时没有结果

  •  0
  • Jake Wilson  · 技术社区  · 15 年前

    类似问题 here 但这有点不同。。。

    location
    ---------------------------
    | id | city    | state_id |
    ---------------------------
    | 1  | Denver  |        6 |
    | 2  | Phoenix |        2 |
    | 3  | Seattle |     NULL |
    ---------------------------
    
    state
    -------------------
    | id | name       |
    -------------------
    | 1  | Alabama    |
    | 2  | Alaska     |
    | 3  | Arizona    |
    | 4  | Arkansas   |
    | 5  | California |
    | 6  | Colorado   |
    -------------------
    
    SELECT
        location.id,
        location.city,
        state.name
    FROM
        location
    JOIN
        state ON state.id = location.state_id;
    

    但是,如果 location.state_id NULL

    我如何绕过这个问题,以某种方式显示所有的位置,即使 state_id 可能是 无效的

    1 回复  |  直到 8 年前
        1
  •  5
  •   Biff MaGriff    15 年前

    使用左外连接

    SELECT
    location.id,
    location.city,
    state.name
    FROM
        location
    LEFT OUTER JOIN
        state ON state.id = location.state_id;