-4

次のようなエントリを持つデータベースがあります...

ユーザー:
+-----+------+----------+---------+-------+
| | UID | 名前 | アドレス | 都市 | 状態 |
+-----+------+----------+---------+-------+
| | 1 | ジョン | ジョン | 101 メイン | オースティン | オースティン | TX | TX |
| | 2 | ジョン | ジョン | 101 メイン | ヒューストン | TX | TX |
| | 3 | ジョン | ジョン | 101 メイン | デル・リオ | TX | TX |
| | 4 | ジョン | ジョン | 101 メイン | ヒューストン | TX | TX |
+-----+------+----------+---------+-------+

検証:
+-----+------------------+--------------+
| | UID | ライセンスファースト3 | ライセンスLast3 |
+-----+------------------+--------------+
| | 1 | 554 | 122 |
| | 2 | 556 | 345 |
| | 3 | 555 | 382 |
| | 4 | 555 | 108 |
+-----+------------------+--------------+

section_user_map:
+-----+----------------------+---------------------+
| | UID | セクション ID | 完了日 |
+-----+----------------------+---------------------+
| | 1 | 65 | 2012-05-12 05:05:15 |
| | 2 | 72 | 2012-05-06 14:03:15 |
| | 3 | 65 | 2012-05-09 16:13:15 |
| | 4 | 72 | 2012-05-06 18:14:15 |
+-----+----------------------+---------------------+

X 日の正午から Y 日の正午までの間にセクション 65 を完了した学生を検索できるようにする必要があります。また、学生の名前、住所、都市、州、およびライセンス番号の最初と最後の 3 桁を示す必要があります。これには left join コマンドと union コマンドの両方が必要になると思いますが、定式化するには少し複雑すぎます。

4

1 に答える 1

0
SELECT *
FROM   section_user_map
  JOIN users        USING (UID)
  JOIN verification USING (UID)
WHERE  SectionID = 65
   AND CompleteDate BETWEEN '2012-05-09 12:00:00'
                        AND '2012-05-11 12:00:00'

sqlfiddleで参照してください。

必要ありませんUNIONusers外部結合は、またはverificationテーブルの一方 (または両方) に存在しないユーザーの結果を返したい場合にのみ必要です。

于 2012-11-26T19:54:32.987 に答える