【发布时间】:2010-04-10 21:03:27
【问题描述】:
希望这没有我想象的那么复杂。
我有一个公司表,另一个工作表,以及第三个表,其中包含每个公司每个工作中每个员工的单个条目。 注意:有些公司在某些工作岗位上没有员工,而有些公司在某些工作岗位上会有不止一名员工。
company表有companyid和companyname字段,job表有jobid和jobtitle字段,employee表有employeeid、companyid、jobid和@987654328 @字段。
我想建一个这样的表:
+-----------+------------+------------+ | A公司| B公司| C公司| ------+------------+-----------+------------+ 工作A |雇员 1 |雇员 2 | | ------+------------+-----------+------------+ 工作乙 |雇员 3 | |雇员 4 | | | |雇员 5 | ------+------------+-----------+------------+ 工作 C | |雇员 6 | | | |员工 7 | | | |雇员 8 | | ------+------------+-----------+------------+我之前一直在遍历一组工作的结果集,对于每个工作,循环遍历每个公司的结果集,对于每个公司,循环遍历每个员工并将其打印在表格中(粗略,但性能不应该是一个考虑)。该应用程序越来越受欢迎,现在我们有 100 家公司和数百个工作岗位,而服务器正在崩溃(所有 id 字段都已编入索引)。
关于如何编写单个查询来获取此数据的任何建议?我不需要公司名称或职位(显然),但我确实需要一些方法来确定结果中每一行的打印位置。我在想象一个只包含一长串加入的员工的结果集,我可以编写一个循环来使用companyid 和employeeid 值来告诉我何时创建新的单元格或表格行。只要没有零员工,这就是有效的;我认为我需要一个 NULL 员工姓名?我完全走错了吗?
提前感谢您的任何想法!
【问题讨论】:
-
我想您可能会发现执行此操作的查询会非常慢...
标签: mysql