постановка задачи: - взять записи из двух таблиц, одна - посещаемость, а вторая - посещения конкретного пользователя и между определенными датами
У меня есть две таблицы: одна - посещаемость, вторая - посещения
1) посещаемость
+-------------+------------+---------------------+
| user | date_today | in_time |
+-------------+------------+---------------------+
| MCCuser0036 | 25-02-2019 | 25-02-2019 10:59:08 |
| MCCuser0036 | 12-03-2019 | 12-03-2019 10:59:54 |
| MCCuser0036 | 14-03-2019 | 14-03-2019 11:01:11 |
| MCCuser0036 | 25-01-2019 | 25-01-2019 11:02:09 |
| MCCuser0036 | 25-03-2019 | 25-03-2019 11:03:10 |
| MCCuser0035 | 25-03-2019 | 25-03-2019 11:39:38 |
| MCCuser0036 | 26-03-2019 | 26-03-2019 11:30:47 |
| MCCuser0036 | 27-03-2019 | 27-03-2019 10:36:30 |
| MCCuser0036 | 28-03-2019 | 28-03-2019 17:18:01 |
| MCCuser0036 | 01-04-2019 | 01-04-2019 15:29:08 |
| MCCuser0036 | 08-04-2019 | 08-04-2019 23:01:57 |
| MCCuser007 | 26-04-2019 | 26-04-2019 20:04:36 |
| MCCuser0036 | 27-04-2019 | 27-04-2019 21:06:17 |
+-------------+------------+---------------------+
2) посещения
+-------------+------------+---------------------+
| username | add_time | visit_time_in |
+-------------+------------+---------------------+
| MCCuser0036 | 13-02-2019 | 13-02-2019 11:46:55 |
| MCCuser0036 | 14-02-2019 | 14-02-2019 11:47:04 |
| MCCuser0036 | 14-02-2019 | 14-02-2019 11:51:07 |
| MCCuser0036 | 14-02-2019 | 14-02-2019 11:51:30 |
| MCCuser0036 | 14-02-2019 | 14-02-2019 11:51:36 |
| MCCuser0036 | 18-02-2019 | 18-02-2019 15:09:42 |
| MCCuser0036 | 20-02-2019 | 20-02-2019 12:11:30 |
| MCCuser0036 | 25-02-2019 | 25-02-2019 13:05:42 |
| MCCuser0036 | 11-03-2019 | 11-03-2019 12:48:28 |
| MCCuser0036 | 01-04-2019 | 01-04-2019 15:55:45 |
| MCCuser007 | 26-04-2019 | 26-04-2019 20:04:55 |
| MCCuser007 | 26-04-2019 | 26-04-2019 20:05:10 |
| MCCuser0036 | 27-04-2019 | 27-04-2019 21:06:55 |
+-------------+------------+---------------------+
что я хочу, это запись посещаемости и посещений определенного пользователя в заданном диапазоне дат в порядке убывания.
мой вывод должен быть как первое посещение, так и все посещения этого пользователя того дня
+----------+------------------------+----------+---------------------+
|user |in_time |username |visit_time_in |
+----------+------------------------+----------+---------------------+
|given user|attendence of given date|given user|visits of given user |
+----------+------------------------+----------+---------------------+
Я использую этот запрос, но он дает мне пустой набор и предупреждение, и у меня нет глубоких знаний о mysql и соединениях, поэтому я не знаю, правильно ли я это делаю или нет:
SELECT a.user,a.in_time,v.username,v.visit_time_in
FROM attendence AS a
INNER JOIN visits AS v ON a.user=v.username
WHERE a.user='MCCuser0036'
AND a.in_time BETWEEN STR_TO_DATE('01-04-2019', '%d-%m-%Y')
AND STR_TO_DATE('27-04-2019', '%d-%m-%Y')
ORDER BY a.in_time,v.visit_time_in DESC;
Empty SET, 22 WARNINGS (0.00 sec)
примечание: нет первичного и внешнего ключа, а также date_today, in_time и add_time, visit_time_in и обоих столбцов username, varchar
ОБНОВЛЕННОЕ РЕДАКТИРОВАНИЕ ответ @SebastianBrosch - это то, что я хотел, но у меня есть больше столбцов в моей БД, поэтому после получения базовой структуры я добавил в нее несколько столбцов и запросил это
SELECT * FROM (SELECT 'attendence' AS 'type', user AS 'username', STR_TO_DATE(in_time, '%d-%m-%Y %H:%i:%s') AS 'time_in', STR_TO_DATE(out_time, '%d-%m-%Y %H:%i:%s') AS 'time_out', location_in as 'place_in' FROM attendence UNION ALL SELECT 'visit', username, STR_TO_DATE(visit_time_in, '%d-%m-%Y %H:%i:%s'), STR_TO_DATE(visit_time_out, '%d-%m-%Y %H:%i:%s'), in_address FROM visits) t WHERE t.username = 'MCCuser0036' AND time_in BETWEEN STR_TO_DATE('01-01-2019', '%d-%m-%Y %H:%i:%s') AND STR_TO_DATE('27-04-2019', '%d-%m-%Y %H:%i:%s') ORDER BY time_in ASC;
но это дает мне неожиданный результат
+------------+-------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
| type | username | time_in | time_out | address_in | address_out |
+------------+-------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
| attendence | MCCuser0036 | 2019-01-25 11:02:09 | 2019-01-25 11:02:10 | in_address | out_address |
| visit | MCCuser0036 | 2019-02-13 11:46:55 | 2019-02-13 11:47:00 | Sewri - Chembur Rd, Trombay Indusrial Area, Antop Hill, Mumbai, Maharashtra 400037, India | Sewri - Chembur Rd, Trombay Indusrial Area, Antop Hill, Mumbai, Maharashtra 400037, India |
| visit | MCCuser0036 | 2019-02-14 11:47:04 | 2019-02-14 11:47:10 | Sewri - Chembur Rd, Trombay Indusrial Area, Antop Hill, Mumbai, Maharashtra 400037, India | Sewri - Chembur Rd, Trombay Indusrial Area, Antop Hill, Mumbai, Maharashtra 400037, India |
| visit | MCCuser0036 | 2019-02-14 11:51:07 | 2019-02-14 11:51:10 | Kokri Agar Road, Koliwada, Kokri Agar, Sion, Mumbai, Maharashtra 400037, India | Kokri Agar Road, Koliwada, Kokri Agar, Sion, Mumbai, Maharashtra 400037, India |
| visit | MCCuser0036 | 2019-02-14 11:51:30 | 2019-02-14 11:51:34 | Kokri Agar Road, Koliwada, Kokri Agar, Sion, Mumbai, Maharashtra 400037, India | Kokri Agar Road, Koliwada, Kokri Agar, Sion, Mumbai, Maharashtra 400037, India |
| visit | MCCuser0036 | 2019-02-14 11:51:36 | 2019-02-14 11:51:39 | Kokri Agar Road, Koliwada, Kokri Agar, Sion, Mumbai, Maharashtra 400037, India | Kokri Agar Road, Koliwada, Kokri Agar, Sion, Mumbai, Maharashtra 400037, India |
| visit | MCCuser0036 | 2019-02-18 15:09:42 | NULL | Kokri Agar Road, Koliwada, Kokri Agar, Sion, Mumbai, Maharashtra 400037, India | |
| visit | MCCuser0036 | 2019-02-20 12:11:30 | 2019-02-20 13:44:36 | Sewri - Chembur Rd, Trombay Indusrial Area, Antop Hill, Mumbai, Maharashtra 400037, India | Building No 57, Gaurav Harmony, CGS Colony, Sector 7, Antop Hill, Mumbai, Maharashtra 400037, India |
| attendence | MCCuser0036 | 2019-02-25 10:59:08 | 2019-02-25 10:59:16 | in_address | out_address |
| visit | MCCuser0036 | 2019-02-25 13:05:42 | NULL | Kokri Agar Road, Koliwada, Kokri Agar, Sion, Mumbai, Maharashtra 400037, India | |
| visit | MCCuser0036 | 2019-03-11 12:48:28 | NULL | jay maharashNagar kokri agar S.M road anophill church Near By sayyed alam, musjid, Mumbai, Maharashtra 400037, India | |
| attendence | MCCuser0036 | 2019-03-12 10:59:54 | 2019-03-12 11:00:24 | in_address | out_address |
| attendence | MCCuser0036 | 2019-03-14 11:01:11 | 2019-03-14 11:01:28 | in_address | out_address |
| attendence | MCCuser0036 | 2019-03-25 11:03:10 | 2019-03-25 11:16:12 | in_address | out_address |
| attendence | MCCuser0036 | 2019-03-26 11:30:47 | NULL | in_address | out_address |
| attendence | MCCuser0036 | 2019-03-27 10:36:30 | 2019-03-27 10:49:05 | in_address | out_address |
| attendence | MCCuser0036 | 2019-03-28 17:18:01 | NULL | in_address | out_address |
| attendence | MCCuser0036 | 2019-04-01 15:29:08 | NULL | in_address | out_address |
| visit | MCCuser0036 | 2019-04-01 15:55:45 | NULL | 736, Aala Hazrat Rd, Jagruti Nagar, Nehru Nagar, Kurla East, Mumbai, Maharashtra 400071, India | |
| attendence | MCCuser0036 | 2019-04-11 15:17:56 | NULL | in_address | out_address |
| attendence | MCCuser0036 | 2019-04-23 17:41:05 | 2019-04-23 17:42:54 | in_address | out_address |
+------------+-------------+---------------------+---------------------+----------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
Может кто-нибудь указать мне, почему?