Hilfe bei SQL-Abfrage, schwierigkeiten bei der Where-Klausel Bildung
Hallo Forum,
ich habe gerade ein Problem in meiner MySQL Datenbank, ich muss dazu sagen ich das mich auch sehr schwer tue mit den SQL-Abfragen ;)
Ich hoffe ihr Könnt mir Helfen (Y)
Ich habe folgende Tabelle:
SELECT TOP (1000) [Address]
,[Thumbprint]
,[IsActiveEncryptionKey]
,[IsActiveSigningKey]
,[KeyType]
FROM [NoSpamProxyDB].[UserManagement].[CryptographicKey]
Ausgabe:
Adress:; Thumbprint; IsActiveEncryptionKey ; IsActiveSigningKey ; KeyType;
a.MAX@MAX.de; 5978C1FEAE2394DB0D54CD1BF1094F10187B0411; 0; 0; 1;
a.MAX@MAX.de; E80CA142297118C35B14C73798699E5BDE92563D; 1 ; 1 ; 1;
a.MUSTERz@MUSTER.com ; 51B6845CB53544455CD626014336FE925708DFA6 ; 1 ; 1 ; 1 ;
a.MUSTER@MUSTER.com ; BB31E2467793D56965A3E316E1F4E2B726CDC551 ; 0 ; 0 ; 1;
a.MANN@MANN.net ; 3C6C242D4D4D01C80CA109696CFD50DE86053C19 ; 1 ; 1 ; 1 ;
In dieser Ausgabe sehe ich E-Mail Adressen mit AbgelaufenenZertifikaten ( Datensätze die 0; 0; 1 als Zahlenwert haben), sowie Aktive/Folge Zertifikate also Verlängerungen (Datensätze die 1; 1; 1 als Zahlenwert haben).
Genau so gibt es aber auch User die aktuell kein gültiges Zertifikat haben:
Adress; Thumbprint; IsActiveEncryptionKey; IsActiveSigningKey ; KeyType;
berlin@Olaf.de ; BA74C641EAC02C0CD268E5226CC6C213EC3415EB ; 0 ; 0 ; 1;
berlin@Olaf.de ; D34752BBCC6CF2C6E011E4A564224BCCFF2AB956 ; 0 ; 0 ; 1;
hier sieht man das Berlin@Olaf.de zwei abgelaufene Zertifikate besitzt und kein Aktives Zertifkakt.
Ich benötige für die Obige SQL-Abfrage eine passende Where-Klausel die mir nur die E-Mail-Adressen / Benutzer ausspuckt, welche aktuell kein gültiges Zertifakt haben.
Also als Bsp. Ergebnis bei den oben genannten Beispiel-Daten dürfte ich nur die Berlin@Olaf.de erhalten, weil alle andern haben ja bereits ein folge Zertifikat.
Über eure Hilfe wäre ich sehr dankbar.
Vielen Dank im vorraus und Gruß
Fizzo361
ich habe gerade ein Problem in meiner MySQL Datenbank, ich muss dazu sagen ich das mich auch sehr schwer tue mit den SQL-Abfragen ;)
Ich hoffe ihr Könnt mir Helfen (Y)
Ich habe folgende Tabelle:
SELECT TOP (1000) [Address]
,[Thumbprint]
,[IsActiveEncryptionKey]
,[IsActiveSigningKey]
,[KeyType]
FROM [NoSpamProxyDB].[UserManagement].[CryptographicKey]
Ausgabe:
Adress:; Thumbprint; IsActiveEncryptionKey ; IsActiveSigningKey ; KeyType;
a.MAX@MAX.de; 5978C1FEAE2394DB0D54CD1BF1094F10187B0411; 0; 0; 1;
a.MAX@MAX.de; E80CA142297118C35B14C73798699E5BDE92563D; 1 ; 1 ; 1;
a.MUSTERz@MUSTER.com ; 51B6845CB53544455CD626014336FE925708DFA6 ; 1 ; 1 ; 1 ;
a.MUSTER@MUSTER.com ; BB31E2467793D56965A3E316E1F4E2B726CDC551 ; 0 ; 0 ; 1;
a.MANN@MANN.net ; 3C6C242D4D4D01C80CA109696CFD50DE86053C19 ; 1 ; 1 ; 1 ;
In dieser Ausgabe sehe ich E-Mail Adressen mit AbgelaufenenZertifikaten ( Datensätze die 0; 0; 1 als Zahlenwert haben), sowie Aktive/Folge Zertifikate also Verlängerungen (Datensätze die 1; 1; 1 als Zahlenwert haben).
Genau so gibt es aber auch User die aktuell kein gültiges Zertifikat haben:
Adress; Thumbprint; IsActiveEncryptionKey; IsActiveSigningKey ; KeyType;
berlin@Olaf.de ; BA74C641EAC02C0CD268E5226CC6C213EC3415EB ; 0 ; 0 ; 1;
berlin@Olaf.de ; D34752BBCC6CF2C6E011E4A564224BCCFF2AB956 ; 0 ; 0 ; 1;
hier sieht man das Berlin@Olaf.de zwei abgelaufene Zertifikate besitzt und kein Aktives Zertifkakt.
Ich benötige für die Obige SQL-Abfrage eine passende Where-Klausel die mir nur die E-Mail-Adressen / Benutzer ausspuckt, welche aktuell kein gültiges Zertifakt haben.
Also als Bsp. Ergebnis bei den oben genannten Beispiel-Daten dürfte ich nur die Berlin@Olaf.de erhalten, weil alle andern haben ja bereits ein folge Zertifikat.
Über eure Hilfe wäre ich sehr dankbar.
Vielen Dank im vorraus und Gruß
Fizzo361
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 588529
Url: https://administrator.de/contentid/588529
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
5 Kommentare
Neuester Kommentar
Du schreibst doch schon selbst wie die Bedingung aussehen muss, wenn ich dich richtig verstanden habe.
und genau das packst du jetzt in deine where-Bedingung sprich:
where [IsActiveEncryptionKey]=0 and [IsActiveSigningKey]=0
[KeyType] kannst du weglassen, weil dieser ja in beiden Fällen 1 ist.
Das sollte es dann schon gewesen sein.
Zitat von @Fizzo361:
In dieser Ausgabe sehe ich E-Mail Adressen mit AbgelaufenenZertifikaten ( Datensätze die 0; 0; 1 als Zahlenwert haben)
In dieser Ausgabe sehe ich E-Mail Adressen mit AbgelaufenenZertifikaten ( Datensätze die 0; 0; 1 als Zahlenwert haben)
und genau das packst du jetzt in deine where-Bedingung sprich:
where [IsActiveEncryptionKey]=0 and [IsActiveSigningKey]=0
[KeyType] kannst du weglassen, weil dieser ja in beiden Fällen 1 ist.
Das sollte es dann schon gewesen sein.
Hallo Fizzo361,
Erklärung:
Du lässt dir alle Datensätze ausgeben die nur [IsActiveSigningKey]=0 haben.
Mit dem "not in" Filter schließt du alle aus die ein verlängertes Zertifikat haben und aus diesem Grund für das abgelaufene Zertifikat in der ersten Abfrage auch einen Treffer liefern würden.
grüße vom it-frosch
PS: kann sein, dass die Syntax nicht 100%ig korrekt ist.
SELECT TOP (1000) [Address]
,[Thumbprint]
,[IsActiveEncryptionKey]
,[IsActiveSigningKey]
,[KeyType]
FROM [NoSpamProxyDB].[UserManagement].[CryptographicKey]
where ([IsActiveSigningKey]=0 and [IsActiveSigningKey]=0)
and [Addresse] not in (select [Addresse] from [NoSpamProxyDB].[UserManagement].[CryptographicKey] where ([IsActiveSigningKey]=1)
Du lässt dir alle Datensätze ausgeben die nur [IsActiveSigningKey]=0 haben.
Mit dem "not in" Filter schließt du alle aus die ein verlängertes Zertifikat haben und aus diesem Grund für das abgelaufene Zertifikat in der ersten Abfrage auch einen Treffer liefern würden.
grüße vom it-frosch
PS: kann sein, dass die Syntax nicht 100%ig korrekt ist.