2012-04-24 204 views
0

我是PHP新手,但正在創建一個相當複雜的工作體驗數據庫。在當前有兩個表(僱主,學生)現在,我用:多個查詢數據庫

"SELECT * FROM employers ORDER BY Category, SubCategory, Name" 

產生僱主和他們的詳細的列表。但是,在這份名單中,我需要顯示哪些學生在三週內與哪些僱主合作。如果'WeekOne'(也是'學生'中的一列)='姓名'(來自「僱主」),我需要從'學生'返回'FirstName'值。

請幫忙!如果這太亂了,讓我知道 - 這很難解釋。

從本質上講,我想生成,看起來名單有點像這樣:

公司一,地址,第一週 - 學生,第二週 - 學生,第三週 - 學生

公司二,地址,第一週 - 學生,第二週 - 學生,第三週 - 學生 等

+0

你可以張貼在每個表中可用的列?我建議的做法是從「學生」表中選擇並加入僱主表中所需的數據。 – Steven 2012-04-24 10:11:19

+0

@Steven已經做完了:) – 2012-04-24 10:17:36

+0

@Steven我想知道的是每個僱主都有它的細節和哪個學生在那裏。就像這樣: 僱主, 地址, 第一週 - 學生, 第二週 - 學生,三 周 - 學生 – 2012-04-24 10:21:22

回答

0

雖然這將是很好的,你向我們展示你的SQL表,這是我的,你會怎麼做想法它。

SELECT e.*, s.FirstName FROM employers AS e, students AS s 
WHERE s.WeekOne = e.Name 
OR s.WeekTwo = e.Name 
OR s.WeekThree = e.Name 
// etc 
ORDER BY Category, SubCategory, Name 

如果我的理解正確,這將幫助您獲取所需的數據。

+0

排序... ...我需要去的產生,讓我下面的僱主的完整列表每個僱主的信息:(僱主名稱)(地址)(第1周=學生)(第2周=學生)(第3周=學生) – 2012-04-24 10:31:51

+0

然後你只需在'OR s.WeekTwo = e.Name' ,在ORDER BY之前。我編輯了我的答案以表明如何完成。 – 2012-04-24 18:32:06

0

據我所知,你想得到他們的details.Usou僱主可以使用這種查詢通過使用連接操作;

SELECT e.*, s.FirstName FROM students AS s 
RIGHT JOIN employers AS e 
ON s.WeekOne=e.Name 
ORDER BY Category, SubCategory, Name 
+0

排序...我需要的是生成一個僱主的完整列表,它給了我每個僱主的以下信息:(僱主姓名)(地址)(第1周=學生)(第2周=學生)(周3 =學生) – 2012-04-24 10:31:25

+0

你能否也請提供db結構? – 2012-04-24 10:36:09

+0

對於兩個表?我怎麼做?抱歉。謝謝。 – 2012-04-24 10:38:47

0

如果students表的weekone列等於僱主表中的'Name',那麼下面的SQL將返回學生的名字和僱主的名字。

SELECT students.FirstName, Employers.Name 
FROM students 
JOIN employers ON students.WeekOne = Employers.Name 

我明白了,你想:用人單位,地址,第一週 - 學生,第二週 - 學生,第三週 - 學生

嘗試是這樣的:

SELECT e.name, e.address, student1.firstname AS 'Week One', student2.firstname AS 'Week Two', student3.firstname AS 'Week Three' 
FROM employers AS e 
JOIN students AS student1 ON e.name = student1.weekone 
JOIN students AS student2 ON e.name = student2.weektwo 
JOIN students AS student3 ON e.name = student3.weekthree 
ORDER BY category, subcategory, e.name 
+0

編輯 - 這有幫助嗎? – 2012-04-24 10:39:56

+0

謝謝你的幫助特里 - 你是什麼意思的'學生1'等? '學生'表是一個包含大量個人信息的學生的數據庫,其中包括專欄'第一週''第二週''第三週',這些專欄顯示了他們在相應周內所處的公司。 – 2012-04-24 10:44:45

+0

我已經添加到我原來的帖子中,試圖更清楚地說明...... – 2012-04-24 10:47:33