【问题标题】:MySQL Query - inner join on multiple fields from the same relating tableMySQL Query - 来自同一个相关表的多个字段的内部连接
【发布时间】:2015-03-14 20:42:06
【问题描述】:

我有两张桌子。表“商店”,其中包含有关商店及其主管和助理收银员的信息。 LeadCashier 和 AssistantCashier 是从同一个表Employees 中选择的。

表格存储:

商店ID |店铺名称 | LeadCashierID |收银员ID |

001 ..... |商店1……| 1....................... | 2 .................... |

002 ......|商店2 ........ | 1 ..................... | 3 .................... |

003 ..... | Store3 ........ | 2 ..... 3 ……………………|

表员工:

员工ID |员工姓名

1........|约翰…………

2........|保罗…………

3.......|史蒂夫.......

我需要设置一个查询来显示 StoreID、LeadCashier 的姓名、AssistantCashier 的姓名。我假设我会构建与此类似的查询,但是我不知道如何在单个查询中回显 LeadCashier 的姓名和 AssistantCashier 的姓名。

从商店中选择 StoreID、StoreName、EmployeeName 在Employees.EmployeeID = Stores.LeadCashierID上加入员工 在Employees.EmployeeID = Stores.AssistentCashierID上加入员工

任何帮助将不胜感激!

【问题讨论】:

    标签: php mysql inner-join alias


    【解决方案1】:

    您只需要表别名:

    SELECT s.StoreID, s.StoreName, le.EmployeeName as LeadName,
           ae.EmployeeName as AssistantName
    FROM s.Stores JOIN
         Employees le
         ON le.EmployeeID = s.LeadCashierID JOIN
         Employees ae
         ON ae.EmployeeID = s.AssistentCashierID;
    

    提示:为表别名使用表缩写。它们使查询更容易理解。

    【讨论】:

    • 我仍然遇到查询问题;这就是我所拥有的:
    • $query = "SELECT s.StoreID, s.StoreName, le.EmployeeName as LeadName, ae.EmployeeName as AssistantName FROM s.Stores 加入员工 le ON le.EmployeeID = s.LeadCashierID 加入员工 ae ON ae.EmployeeID = s.AssistentCashierID"; $result = $db->query($query); $num_results = $result->num_rows; for ($i=0; $i fetch_assoc();回声 "" 回声 "";回声“";回声“";回声“";回声“
      " 。 $row['FirstName'] 。 "”。 $row['FirstName'] 。 "”。 $row['FirstName'] 。 "”。 $row['FirstName'] 。 "
      ”};
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多