3

データベースには、ユーザー名テーブルと管轄テーブルがあります。また、ユーザーを 1 つ以上の管轄区域に割り当てるための中間テーブルもあります。

従業員テーブル

  • ユーザーID (主キー)
  • ファーストネーム
  • 苗字

記録:

+--------+-----------+----------+
| userID | firstName | lastName |
+--------+-----------+----------+
|      6 | John      | Doe      |
|     11 | lisa      | lopez    | 
+--------+-----------+----------+

管轄表

  • jurId (主キー)
  • 領域

記録:

+-------+--------------+
| jurID | jurisdiction |
+-------+--------------+
|     1 | California   |
|     2 | Texas        |
|     3 | Washington   |
|     4 | South Dakota |
|     5 | Alaska       |
|     6 | Ohio         |
+-------+--------------+

user_jurisdiction

  • userID (従業員のユーザー ID を指す外部キー)
  • jurID (法域の jurID を指す外部キー)

記録:

    +--------+-------+
    | userID | jurID |
    +--------+-------+
    |      6 |     2 |
    |      6 |     3 |
    |     11 |     2 |
    +--------+-------+

「テキサス」のすべてのワーカーを選択/リストするSQLステートメントを考え出すために何時間も試みてきました。私はこのSQLステートメントの多くの変更を使用してきましたが、成功しませんでした:

SELECT  jurisdictions.jurisdiction,
        employees.firstName
FROM    jurisdictions,
        employees
        INNER JOIN user_jurisdictions
            ON  user_jurisdictions.jurID = jurisdictions.jurID AND 
                user_jurisdictions.userID = employees.userID
WHERE   jurisdictions.jurisdiction = "Texas";

しかし、私は成功していません。管轄区域から関与している従業員のリストを取得するSQLステートメントはどれですか.jurisdiction = "Texas";

4

2 に答える 2

2
SELECT 
 e.*
FROM 
 jurisdictions j, user_jurisdiction uj, employees e
WHERE
 uj.jurID = j.jurID AND 
 uj.userID = e.userID AND
 j.jurisdiction = 'Texas';
于 2013-03-31T07:41:30.207 に答える