Ich habe eine Tabelle, die Benutzer-Login-Informationen speichert. Tabelle speichert die Anmeldeinformationen des Benutzers für ein bestimmtes System. Also, wenn ein Benutzer-Login auf ein System, das in meiner Tabelle gespeichert ist und das Statusfeld wird als 1.mysql- ignorieren doppelte Werte von einer MySQL-Tabelle
Dies ist meine Tabellenstruktur:
CREATE TABLE IF NOT EXISTS `login_info` (
`id` int(11) NOT NULL,
`staffID` int(11) NOT NULL,
`logDate` date NOT NULL,
`status` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=latin1;
Das Ding ist, sind einige der Benutzerdatensätzen repliziert und ich versuche, sie zu vermeiden. Ich meine, einige Benutzer melden sich mehr als einmal am System an. Für einen bestimmten Tag haben sie vielleicht mehr als eine Aufzeichnung und für einen anderen Tag werden sie keine haben, wenn sie sich überhaupt nicht einloggen.
ich eine Probe der Daten vorgenommen:
INSERT INTO `login_info` (`id`, `staffID`,`logDate`, `status`) VALUES
(1, 100, '2016-10-01',1),
(2, 100, '2016-10-01',1),
(3, 100, '2016-10-01',1),
(4, 101, '2016-10-01',1),
(5, 101, '2016-10-01',1),
(6, 102, '2016-10-01',1),
(7, 100, '2016-10-02',1),
(8, 101, '2016-10-02',1),
(9, 101, '2016-10-02',1),
(10, 102, '2016-10-02',1),
(11, 103, '2016-10-02',1),
(12, 100, '2016-10-03',1),
(13, 101, '2016-10-03',1),
(14, 102, '2016-10-03',1),
(15, 103, '2016-10-03',1),
(16, 100, '2016-10-04',1),
(17, 100, '2016-10-04',1),
(18, 102, '2016-10-04',1),
(19, 103, '2016-10-04',1);
Sie wissen, Mitarbeiter mit id 100
in 3-mal auf 2016-10-01
und Mitarbeiter mit der ID geprüft 103
überhaupt nicht anmelden.
Ich versuche für jeden Tag verschiedene Datensätze zu holen, die nicht so kommen, wie ich dachte.
Hier ist ein FIDDLE
I
versuchtselect staffID from login_info WHERE logDate >= '2016-10-01' AND status=1;
UND
select logDate from login_info WHERE logDate >= '2016-10-01' AND status=1;
Es ist nicht zu holen, was ich suche.
Dies ist, was ich versuche zu erreichen: Sie
id staffID logDate status
3 100 2016-10-01 1
5 101 2016-10-01 1
6 102 2016-10-01 1
7 100 2016-10-02 1
9 101 2016-10-02 1
10 102 2016-10-02 1
11 103 2016-10-02 1
12 100 2016-10-03 1
13 101 2016-10-03 1
14 102 2016-10-03 1
15 103 2016-10-03 1
17 100 2016-10-04 1
18 102 2016-10-04 1
19 103 2016-10-04 1
Sie haben eine Bedingung mit Angabe des Datums ab dem 2. Oktober - warum erhalten Sie Aufzeichnungen vom 1. Oktober? – Mureinik
Betrachten Sie das als Tippfehler. Korrigiere es jetzt. @Mureinik –