我有以下兩個表:MySQL的 - 比較查詢結果與當前的表數據
表1
| id | name | job | start_time | end_time |
| ----| ------| --------| ---------------------| ----------------------|
| 111 | John | Janitor| 2016-08-20 00:01:00 | NULL |
| 111 | John | Janitor| NULL | 2016-08-20 00:02:00 |
| 222 | Sam | Valet | 2016-08-20 00:03:00 | NULL |
| 222 | Sam | Valet | NULL | 2016-08-20 00:04:00 |
表2
| name | job | checkin_time |
| ------| --------| ---------------------|
| John | Janitor| 2016-08-20 00:01:30 |
| Sam | Valet | 2016-08-20 00:03:30 |
| Tim | Cashier| 2016-09-20 00:01:00 |
下面的查詢
SELECT id, Table2.name, Table2.job, start_time, Table2.checkin_time, end_time FROM (
SELECT id,name,job, MIN(start_time) AS start_time, MAX(end_time) AS end_time
FROM Table1
GROUP BY id
) AS results INNER JOIN Table2 ON
results.job = Table2.job
AND results.name = Table2.name
AND (Table2.checkin_time BETWEEN results.start_time AND results.end_time OR
Table2.checkin_time >= results.start_time AND results.end_time IS NULL);
會顯示:
| id | name | job | start_time | checkin_time | end_time |
| ----| ------| --------| ---------------------| --------------------|----------------|
| 111 | John | Janitor| 2016-08-20 00:01:00 | 2016-08-20 00:01:30 |2016-08-20 00:02:00 |
| 222 | Sam | Valet | 2016-08-20 00:03:00 | 2016-08-20 00:03:30 |2016-08-20 00:04:00 |
如何制定我的查詢,以便它將返回未成功/找到的記錄。例如。從表1,記錄:
| Tim | Cashier| 2016-09-20 00:01:00 |
感謝您的幫助社區團隊!
修正...它應該是參考表2,表1不是。例如。我如何制定我的查詢,以便它將返回不成功/找到的記錄。例如。從表2可以看出: | Tim |出納| 2016-09-20 00:01:00 | – user3567212
您可以使用評論中提到的更改編輯您的問題。 – suku