0

私は自分のデータベースの次のテーブル構造を持っています:

  • tbl_project

  • tbl_employee

  • tbl_deliverable
  • user_to_deliverable

tbl_prjctとtbl_deliverableには1対多の関係があり、 tbl_employeetbl_deliverableには多対多の関係があるため、 user_to_deliverableテーブルに分割されます。

project_name (tbl_project から)、プロジェクトの成果物 (tbl_deliverable から)、およびその特定の成果物が割り当てられている従業員名を表示するクエリが必要です。

このクエリの作成についてサポートを受けることはできますか?

4

2 に答える 2

1

あなたの望むクエリは、このように 89.67% によく似ています:D

SELECT      a.ProjectName,
            b.deliverables,
            d.employeename
FROM        tbl_project a
                INNER JOIN tbl_deliverable b
                    ON a.projectID = b.projectID
                INNER JOIN user_to_deliverable c
                    ON b.recordID = c.RecordID      
                        -- or could be the primary key
                INNER JOIN tbl_employee d
                    ON c.userID = d.userID
于 2012-09-04T00:31:46.853 に答える
0

スキーマを知らなくてもおおよそのソリューション。プロジェクトごとに成果物/従業員を連結したい場合は、結果を取得して非 SQL 言語 (PHP、Python、または使用しているもの) で解析するのがおそらく最善です。これを完全に SQL で行いたい場合は、GROUP_CONCAT().

select tbl_project.name as project,
       tbl_deliverable.name as deliverable,
       tbl_employee.name as employee
from tbl_project
join tbl_deliverable
    on (tbl_project.id = tbl_deliverable.project_id)
join user_to_deliverable
    on (tbl_deliverable.id = user_to_deliverable.deliverable_id)
join tbl_employee
    on (user_to_deliverable.employee_id = tbl_employee.id)
于 2012-09-04T00:44:18.613 に答える