多个查询数据库

时间:2012-04-24 10:07:35

标签: php mysql database

我是PHP的新手,但我正在创建一个相当复杂的工作体验数据库。目前有两个表(雇主,学生)现在,我用过:

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

生成雇主名单及其详细信息。但是,在此列表中,我需要在三周内显示哪些学生与哪些雇主在一起。如果'WeekOne'(也是'学生'中的一列)='姓名'(来自'雇主'),我需要从'学生'返回'FirstName'值

请帮忙!如果这太乱了,请告诉我 - 这很难解释。

基本上,我想生成一个看起来有点像这样的列表:

  

公司一,地址,第一周 - 学生,第二周 - 学生,第三周 - 学生

     

公司二,地址,第一周 - 学生,第二周 - 学生,第三周 - 学生   等

3 个答案:

答案 0 :(得分:0)

虽然向您展示您的sql-tables会很高兴,但我想知道您将如何做到这一点。

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

如果我理解正确,这将有助于您获取所需的数据。

答案 1 :(得分:0)

据我了解,您希望雇主了解他们的详细信息。您可以通过使用联接操作来使用此类查询;

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

答案 2 :(得分:0)

如果学生表weekone列等于雇主表中的“姓名”,则下面的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