visitor database on MySQL server looks like as below
the id is a primary key integer type, firstname
and lastname
are text type and visitor id is an integer type
id firstname lastname visitorid
1 userfirstname1 userlastname1 1
2 userfirstname2 userlastname2 2
3 userfirstname3 userlastname3 3
4 userfirstname4 userlastname4 4
5 userfirstname5 userlastname5 5
visits database MySQL server looks like as below the id is a primary key integer type, time is DateTime type and visitorid_id is a foreign key to visitor table (visitor->visitorid ) id time visitorid_id
id scantime visitorid_id
433 2019-12-25 09:00:00.000000 1
434 2019-12-25 18:00:00.000000 1
435 2019-12-26 09:00:00.000000 1
436 2019-12-26 18:00:00.000000 1
437 2019-12-27 09:00:00.000000 1
438 2019-12-27 18:00:00.000000 1
439 2019-12-28 09:00:00.000000 1
440 2019-12-28 18:00:00.000000 1
441 2019-12-29 09:00:00.000000 1
442 2019-12-29 18:00:00.000000 1
443 2019-12-25 10:00:00.000000 2
444 2019-12-25 17:00:00.000000 2
445 2019-12-25 09:30:00.000000 3
446 2019-12-25 17:30:00.000000 3
447 2019-12-25 08:00:00.000000 5
448 2019-12-25 18:00:00.000000 5
449 2019-12-25 11:30:00.000000 4
450 2019-12-25 17:30:00.000000 4
I need to generate reports from above my tables that show the following data
Date, visitor first name, visitor last name, 1st scan time, 2nd scan time, the time difference between 1st scan & second scan time in HH:MM:SS format.
I used the following links but could not get the correct SQL query that generates the required report a) How to concatenate text from multiple rows into a single text string in SQL server? b) Calculate the time difference between two timestamps in mysql
what is an optimized query to generate required reports for large no. of records.