【问题标题】:MySQL: Acquiring data from related tablesMySQL:从相关表中获取数据
【发布时间】:2018-11-01 17:55:30
【问题描述】:

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

  1. "table1" 包含 id、name、surname 列
  2. “table2”,列 id,电话

它们通过 id 列相关。

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

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

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

另外,不是 table1 中的每个 id 在 table2 中都有记录,这意味着不是每个人都有电话号码。上面的方法只显示那些同时存在于 table1 和 table2 中的 id,而我也想显示那些没有电话号码的数据,无论是空格还是电话栏中的“N/A”。

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

【问题讨论】:

  • 表2没有主唯一键吗?我希望它是表 2 上的“id”,并且它有另一个键加入
  • @smith,是的,对不起! Table2 有它自己的唯一键,而两者中的 id 是相关的。

标签: php mysql search relationship display


【解决方案1】:

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

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

【讨论】:

  • 成功了,非常感谢!这太酷了。我现在觉得在 phpMyAdmin 中连接它们就足够了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多