代码之家  ›  专栏  ›  技术社区  ›  Brian

基本MySQL表连接?[副本]

  •  1
  • Brian  · 技术社区  · 14 年前

    可能重复:
    SQL query multiple tables

    我有两张桌子:

    我当前正在运行此查询以获取所需的数据集:

    SELECT `name`, `key`, `office`, `manager`, `id` 
    FROM `database`.`ASSOCIATION_TABLE`
    WHERE `association`.`customer`=4;
    

    如何修改此查询以显示OFFICE_表中的名称,而不是ID?我认为表连接是我的解决方案,但我不确定是什么类型的,或者如何使用它。

    4 回复  |  直到 8 年前
        1
  •  2
  •   mechanical_meat nazca    14 年前
    SELECT `name`, `key`, ot.name AS OFFICE_NAME, `manager`, `id` 
      FROM `ASSOCIATION_TABLE` at
           LEFT OUTER JOIN OFFICE_TABLE ot
           ON ot.id = at.office
     WHERE `association`.`customer`=4;
    

    这是办公室桌子的外部连接。您的结果集将包括关联表中没有OFFICE表中记录的任何记录。

    如果只想返回OFFICE_表中有记录的结果,则需要一个内部联接,例如:

    SELECT `name`, `key`, ot.name AS OFFICE_NAME, `manager`, `id` 
      FROM `ASSOCIATION_TABLE` at
           INNER JOIN OFFICE_TABLE ot
           ON ot.id = at.office
     WHERE `association`.`customer`=4;
    
        2
  •  0
  •   Jason    14 年前

    除了“亚当”所说的,你还可以看看官员 MySQL documentation

    我还建议您在google上寻找一个好的SQL教程。

        4
  •  0
  •   Parris Varney    14 年前
    SELECT o.`name`, `key`, `office`, `manager`, `id` 
    FROM `database`.`ASSOCIATION_TABLE`
    JOIN `database`.`OFFICE_TABLE` o
    USING (id)
    WHERE `association`.`customer`=4;