CREATE TABLE peatused( id INT NOT NULL auto_increment PRIMARY KEY, peatusenimi VARCHAR(50) ); INSERT INTO peatused(peatusenimi) VALUES ('Viljandi'); INSERT INTO peatused(peatusenimi) VALUES ('Karksi'); INSERT INTO peatused(peatusenimi) VALUES ('Tartu'); INSERT INTO peatused(peatusenimi) VALUES ('Valga'); INSERT INTO peatused(peatusenimi) VALUES ('Puhja'); INSERT INTO peatused(peatusenimi) VALUES ('Elva'); CREATE TABLE liinid( liini_nr INT NOT NULL PRIMARY KEY, liini_nimetus VARCHAR(50) ); INSERT INTO liinid VALUES (10, 'Viljandi-Valga kiir'); INSERT INTO liinid VALUES (11, 'Viljandi-Elva-Tartu'); INSERT INTO liinid VALUES (12, 'Karksi-Tartu'); +----+-------------+ | id | peatusenimi | +----+-------------+ | 1 | Viljandi | | 2 | Karksi | | 3 | Tartu | | 4 | Valga | | 5 | Puhja | | 6 | Elva | +----+-------------+ CREATE TABLE peatumisajad( id INT NOT NULL auto_increment PRIMARY KEY, liini_nr INT, peatuse_id INT, aeg_algpeatusest TIME ); INSERT INTO peatumisajad(liini_nr, peatuse_id, aeg_algpeatusest) VALUES(10, 1, '00:00'); INSERT INTO peatumisajad(liini_nr, peatuse_id, aeg_algpeatusest) VALUES(10, 2, '00:30'); INSERT INTO peatumisajad(liini_nr, peatuse_id, aeg_algpeatusest) VALUES(10, 4, '01:30'); mysql> SELECT * FROM peatumisajad; +----+----------+------------+------------------+ | id | liini_nr | peatuse_id | aeg_algpeatusest | +----+----------+------------+------------------+ | 1 | 10 | 1 | 00:00:00 | | 2 | 10 | 2 | 00:30:00 | | 3 | 10 | 4 | 01:30:00 | +----+----------+------------+------------------+ INSERT INTO peatumisajad(liini_nr, peatuse_id, aeg_algpeatusest) VALUES(11, 1, '00:00'); INSERT INTO peatumisajad(liini_nr, peatuse_id, aeg_algpeatusest) VALUES(11, 5, '00:45'); INSERT INTO peatumisajad(liini_nr, peatuse_id, aeg_algpeatusest) VALUES(11, 6, '01:00'); INSERT INTO peatumisajad(liini_nr, peatuse_id, aeg_algpeatusest) VALUES(11, 3, '01:35'); mysql> SELECT * FROM peatumisajad WHERE liini_nr=11; +----+----------+------------+------------------+ | id | liini_nr | peatuse_id | aeg_algpeatusest | +----+----------+------------+------------------+ | 4 | 11 | 1 | 00:00:00 | | 5 | 11 | 5 | 00:45:00 | | 6 | 11 | 6 | 01:00:00 | | 7 | 11 | 3 | 01:35:00 | +----+----------+------------+------------------+ INSERT INTO peatumisajad(liini_nr, peatuse_id, aeg_algpeatusest) VALUES(12, 2, '00:00'); INSERT INTO peatumisajad(liini_nr, peatuse_id, aeg_algpeatusest) VALUES(12, 6, '01:15'); INSERT INTO peatumisajad(liini_nr, peatuse_id, aeg_algpeatusest) VALUES(12, 3, '01:55'); SELECT ADDTIME('13:10', aeg_algpeatusest) FROM peatumisajad WHERE liini_nr=11 ORDER BY aeg_algpeatusest; mysql> SELECT ADDTIME('13:10', aeg_algpeatusest) FROM peatumisajad -> WHERE liini_nr=11 -> ORDER BY aeg_algpeatusest; +------------------------------------+ | ADDTIME('13:10', aeg_algpeatusest) | +------------------------------------+ | 13:10:00 | | 13:55:00 | | 14:10:00 | | 14:45:00 | +------------------------------------+ SELECT peatusenimi, ADDTIME('13:10', aeg_algpeatusest) as kellaaeg FROM peatumisajad, peatused WHERE peatumisajad.peatuse_id=peatused.id AND liini_nr=11 ORDER BY aeg_algpeatusest; +-------------+----------+ | peatusenimi | kellaaeg | +-------------+----------+ | Viljandi | 13:10:00 | | Puhja | 13:55:00 | | Elva | 14:10:00 | | Tartu | 14:45:00 | +-------------+----------+ CREATE TABLE reisid( id INT NOT NULL auto_increment PRIMARY KEY, liini_nr INT, algusaeg TIME, suund INT DEFAULT 1 ); INSERT INTO reisid (liini_nr, algusaeg) VALUES (11, '13:10'); INSERT INTO reisid (liini_nr, algusaeg) VALUES (11, '16:10'); INSERT INTO reisid (liini_nr, algusaeg, suund) VALUES (11, '16:10', 2); INSERT INTO reisid (liini_nr, algusaeg) VALUES (10, '9:15'); Tagasisuuna reisi päring SELECT aeg_algpeatusest FROM peatumisajad WHERE liini_nr=11; SELECT MAX(aeg_algpeatusest) FROM peatumisajad WHERE liini_nr=11; SELECT ADDTIME( (SELECT MAX(aeg_algpeatusest) FROM peatumisajad WHERE liini_nr=11), -aeg_algpeatusest ) as aeg FROM peatumisajad where liini_nr=11 order by aeg; +----------+ | aeg | +----------+ | 00:00:00 | | 00:35:00 | | 00:50:00 | | 01:35:00 | +----------+ -- lisage juurde ka peatuste nimed SELECT peatusenimi, ADDTIME( (SELECT MAX(aeg_algpeatusest) FROM peatumisajad WHERE liini_nr=11), -aeg_algpeatusest ) as aeg FROM peatumisajad, peatused WHERE peatumisajad.peatuse_id=peatused.id AND liini_nr=11 ORDER BY aeg;