MySQL: 正在从相关表中获取数据

MySQL: Acquiring data from related tables

我正在寻求有关从 MySQL 中的相关表中获取和显示信息的帮助。我有两个表:

  1. "table1" 列 id、name、surname
  2. "table2" 列 id,phone

它们通过 id 列相关联。

我正在尝试同时显示名字、姓氏和 phone。我目前使用的是:

SELECT name, surname, phone FROM table1, table2 WHERE table1.id = table2.id

但是,我觉得我没有正确使用表之间的关系,因为我相信这也适用于不相关的表。

此外,并非表 1 中的每个 ID 在表 2 中都有记录,这意味着并非每个人都有一个 phone 号码。上面的方法导致只显示 table1 和 table2 中都存在的那些 id,而我也想显示那些没有 phone 数字的数据,通过空白 space 或 "N/A" 在 phone 列中。

非常感谢有关如何正确显示数据的任何提示。

您需要使用 LEFT OUTER JOIN 语句将两个表连接在一起。 LEFT OUTER JOIN 仍会显示来自 table1 的记录,即使 table2 中没有匹配的 id。类似于:

SELECT
    table1.name,
    table1.surname,
    table2.phone
FROM table1
LEFT OUTER JOIN table2
ON table1.id = table2.id

更多信息:https://www.w3schools.com/sql/sql_join_left.asp