希望這比我想象的要複雜。MySQL大師:如何用一個查詢從MySQL數據庫中提取複雜的數據網格?
我有一張公司名單和另一張工作表,第三張表中包含每個公司每項工作中每位員工的單個條目。 注意:有些公司在某些工作中不會有員工,有些公司在一些工作中會有不止一個員工。
公司表有companyid
和companyname
領域,工作表中有一個jobid
和jobtitle
場,僱員表有employeeid
,companyid
,jobid
和employeename
領域。
我想建立這樣一個表:
+-----------+-----------+-----------+ | Company A | Company B | Company C | ------+-----------+-----------+-----------+ Job A | Emp 1 | Emp 2 | | ------+-----------+-----------+-----------+ Job B | Emp 3 | | Emp 4 | | | | Emp 5 | ------+-----------+-----------+-----------+ Job C | | Emp 6 | | | | Emp 7 | | | | Emp 8 | | ------+-----------+-----------+-----------+
我以前一直在結果集中的工作循環,併爲每個作業,在結果集中各公司的循環,併爲每個公司,循環遍歷每個員工並將其打印在一張表格中(總體而言,表現不應被視爲考慮因素)。該應用程序越來越受歡迎,現在我們有100家公司和數百個工作,並且服務器正在退出(所有ID字段都被編入索引)。
有關如何編寫單個查詢以獲取此數據的任何建議?我不需要公司名稱或職位(顯然),但我確實需要一些方法來確定結果中的每行應該打印的位置。我想象的結果集只包含一長串加入的員工,我可以編寫一個循環以使用companyid
和employeeid
值告訴我何時創建新的單元格或表格行。只要沒有ZERO員工,這種方法就行得通;我想爲此需要一個NULL員工姓名?我完全在錯誤的軌道上?
在此先感謝您的任何想法!
我認爲你可能會發現查詢這樣做會非常緩慢...... – SeanJA 2010-04-10 21:11:29