Hallo,
ich habe folgende Tabellenstruktur:
Mit folgenden Einträgen:
Ich möchte nun folgendes erreichen:
1. Nur die Einträge die in den Zeitraum contest_start bis contest_end passen. Das habe ich so gelöst:
2. Wenn eine contest_client_id ermittelt wurde (Läuft in PHP) zusätzlich das:
3. Was mir aber nicht gelingen will. Wenn ein Eintrag die contest_parent_id nicht NULL hat, dann soll der Eintrag contest_id = contest_parent_id aus der Menge rausfliegen. Also laut den Daten dann der Eintrag mit der contest_id = 5 muss raus, weil es einen Eintrag contest_parent_id = 5 gibt. Wie könnte ich das machen?
Liebe Grüße
Kerstel
ich habe folgende Tabellenstruktur:
Code:
CREATE TABLE `contests` ( `contest_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `contest_parent_id` int(11) DEFAULT NULL, `contest_client_id` int(11) DEFAULT NULL, `contest_tagname` varchar(32) DEFAULT NULL, `contest_image` varchar(255) DEFAULT NULL, `contest_start` timestamp NULL DEFAULT NULL, `contest_end` timestamp NULL DEFAULT NULL, PRIMARY KEY (`contest_id`), UNIQUE KEY `contest_tagname` (`contest_tagname`), KEY `contest_parent_id` (`contest_parent_id`), KEY `contest_client_id` (`contest_client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Code:
RT INTO `contests` (`contest_id`, `contest_parent_id`, `contest_client_id`, `contest_tagname`, `contest_image`, `contest_start`, `contest_end`) VALUES (1, NULL, NULL, 'Test_01.2018', 'Test_01.jpg', '2018-02-17 13:00:00', '2018-03-17 13:00:00'), (2, NULL, NULL, 'Test_01.2018', 'Test_02.jpg', '2018-03-16 13:00:00', '2018-04-06 12:00:00'), (3, NULL, NULL, 'Test_03.2018', 'Test_03.jpg', '2018-03-11 12:00:00', '2018-05-09 12:00:00'), (4, NULL, NULL, 'Test_04.2018', 'Test_04.jpg', '2018-03-21 13:00:00', '2018-04-12 12:00:00'), (5, NULL, NULL, 'Test_05.2018', 'Test_05.jpg', '2017-10-17 12:00:00', '2018-11-30 13:00:00'), (6, NULL, NULL, 'Test_06.2018', 'Test_06.jpg', '2017-11-30 23:00:00', '2018-12-31 22:59:00'), (7, 5, 627, 'Test_07.2018', 'Test_07.jpg', '2018-02-17 12:00:00', '2018-11-30 13:00:00'), (8, NULL, 627, 'Test_08.2018', 'Test_08.jpg', '2018-01-17 12:00:00', NULL);
1. Nur die Einträge die in den Zeitraum contest_start bis contest_end passen. Das habe ich so gelöst:
Code:
WHERE (t1.contest_start <= NOW() AND (t1.contest_end IS NULL OR t1.contest_end > NOW()));
Code:
t1.contest_parent_id = 627
Liebe Grüße
Kerstel
Comment