-4

我有一个数据库,其条目类似于以下内容......

用户:
+-----+------+----------+---------+--------+
| 识别码 | 姓名 | 地址 | 城市 | 状态 |
+-----+------+----------+---------+--------+
| 1 | 约翰 | 101 主线 | 奥斯汀 | 德克萨斯州 |
| 2 | 约翰 | 101 主线 | 休斯顿 | 德克萨斯州 |
| 3 | 约翰 | 101 主线 | 德尔里奥 | 德克萨斯州 |
| 4 | 约翰 | 101 主线 | 休斯顿 | 德克萨斯州 |
+-----+------+----------+---------+--------+

确认:
+-----+---------------+--------------+
| 识别码 | 许可证优先3 | 许可证最后3 |
+-----+---------------+--------------+
| 1 | 第554章 122 |
| 2 | 第556章 345 |
| 3 | 555 | 382 |
| 4 | 555 | 108 |
+-----+---------------+--------------+

section_user_map:
+-----+------------+----------+
| 识别码 | 部分 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 部分的学生。我还需要显示学生的姓名、地址、城市、州以及他们的执照号码的前三位和后三位。我相信这将需要左连接和联合命令,但制定起来有点太复杂了。

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上查看。

不需要UNION。仅当您仍想为不存在于一个或两个表中的用户返回结果时,才需要外部users联接verification

于 2012-11-26T19:54:32.987 回答