0

私はPHPを初めて使用しますが、かなり複雑な作業経験データベースを作成中です。現在、2つのテーブル(雇用者、学生)があります。今、私は使用しました:

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

雇用主とその詳細のリストを生成します。ただし、このリスト内で、3週間の間にどの学生がどの雇用主と一緒にいるかを表示する必要があります。'WeekOne'('students'の列でもある)='Name'('employers'から)の場合、'students'から'FirstName'の値を返す必要があります

助けてください!これが文字化けしすぎている場合は、私に知らせてください-説明するのはかなり難しいです。

基本的に、次のようなリストを生成したいと思います。

会社1、住所、第1週-学生、第2週-学生、第3週-学生

会社2、住所、第1週-学生、第2週-学生、第3週-学生など

4

3 に答える 3

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

私があなたを正しく理解していれば、これはあなたが必要なデータをフェッチするのに役立ちます。

于 2012-04-24T10:12:44.887 に答える
0

私が理解しているように、あなたは雇用主に彼らの詳細を伝えたいと思っています。あなたは結合操作を使用することによってそのようなクエリを使うことができます。

SELECT e.*, s.FirstName FROM students AS s
RIGHT JOIN employers AS e
ON s.WeekOne=e.Name
ORDER BY Category, SubCategory, Name
于 2012-04-24T10:13:16.323 に答える
0

以下のSQLは、学生テーブルのweekone列が雇用者テーブルの「名前」と等しい場合、学生の名と雇用者の名前を返します。

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

なるほど、あなたが欲しいのは:雇用主、住所、第1週-学生、第2週-学生、第3週-学生

次のようなものを試してください。

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
于 2012-04-24T10:13:19.917 に答える