MySQL: 正在从相关表中获取数据
MySQL: Acquiring data from related tables
我正在寻求有关从 MySQL 中的相关表中获取和显示信息的帮助。我有两个表:
- "table1" 列 id、name、surname
- "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
我正在寻求有关从 MySQL 中的相关表中获取和显示信息的帮助。我有两个表:
- "table1" 列 id、name、surname
- "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