【问题标题】:MySQL Joining Two Table ID's to Produce Results from One Table to AnotherMySQL 连接两个表 ID 以产生从一个表到另一个表的结果
【发布时间】:2014-10-20 09:59:45
【问题描述】:

我在 stackoverflow 上尝试了一大堆示例/回答了问题,但我似乎无法完成我需要的。

我正在开发一个 PHP / MySQL 工具来跟踪自己的项目。我认为立即优化最大的表是个好主意,因此我选择将 ID 存储在 Project 表中,而不是全名。当通过 PHP 查看结果时,我希望将该 ID 从 Project 表链接到另一个表中的实际名称,但当然我希望实际的数据库列只包含 ID。我相信这是可能的,我只是不知道如何将其应用于我的情况。

表格 - 项目

ID | CustomerID | Summary  | Phase
---------------------------------
1  | 61         | Project1 | 3
2  | 42         | Project2 | 3
3  | 33         | Project3 | 5

表格 - 客户

ID   | CustomerName
--------------------
61   | Customer 1
42   | Customer 2
33   | Customer 3

现在,当我从 Projects 表中调用“CustomerID”行时,它会按预期显示 CustomerID 编号。我希望它改为从 Customers 表中提取 CustomerName,将 Customers.ID 列与 Projects.CustomerID 列匹配。

这可能吗?谁能指出我正确的方向?

提前致谢!

【问题讨论】:

  • 只选择它?在选择?您可以发布您正在使用的查询吗?
  • 现在,我只是使用SELECT CustomerID FROM Projects WHERE ID = "1"; 为例。我已经尝试了一些我发现的其他示例,但我对它们一无所获:mysql> SELECT CustomerName FROM Customers INNER JOIN Customers ON (Projects.CustomerID = Customers.ID);ERROR 1066 (42000): Not unique table/alias: 'Customers'mysql> SELECT CustomerName FROM Customers WHERE ID = Projects.CustomerID;ERROR 1054 (42S22): Unknown column 'Projects.CustomerID' in 'where clause'

标签: php mysql join


【解决方案1】:

你可以试试这样的:

SELECT CustomerName FROM Projects
JOIN Customers ON Customers.ID = Projects.CustomerID
WHERE Projects.ID = "1"

【讨论】:

  • 我想你已经明白了!让我玩一下这个吧!
  • 前 2 行工作得很好:mysql> SELECT CustomerName FROM Projects JOIN Customers ON Customers.ID = Projects.CustomerID; 但只要我添加 WHERE 子句,我就会得到 Empty set (0.00 sec)
  • 好的,我在某个地方搞砸了,现在它看起来可以从 CLI 运行,将在我的 PHP 中尝试它。
  • 在任何地方都工作得很好,但只有 1 个位置!但这不是 SQL 的错!非常感谢您的帮助,现在我已经能够将它应用到更多的列中了。
【解决方案2】:

我相信这样的事情应该可行:

SELECT CustomerName FROM Customers JOIN Projects ON CustomerID = ID;

您正在从客户中选择客户名称,并将该表加入到 customerid 等于 id 的项目中。

【讨论】:

  • ERROR 1052 (23000): Column 'ID' in on clause is ambiguous
  • 我现在明白了 - 将最后一个 ID 更改为 Customers.ID
  • @cwaddilove 您只需将 ID 更改为您传递的任何 ID 即可
猜你喜欢
  • 2022-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
  • 2011-12-27
  • 2020-06-23
  • 2013-10-28
  • 1970-01-01
相关资源
最近更新 更多