SQLite SELECT von ungleichen Spaltenpaaren

ambois

Mitglied
Hallo

Hat jemand schon mal ungleiche Spaltenpaare in derselben Tabelle mit einer SELECT Abfrage rausgefischt bekommen?

Ich habe mehrere Tabelle, die hier relevante hat 6 Spalten. Nun möchte ich nur die Datensätze angezeigt haben wo sich die Komibination (von Spalte a und Spalte b) unterscheiden.
Das heißt:
Java:
SELECT Auto.Marke, Auto.Diagnose
FROM Auto
WHERE Auto.Marke = Auto.Marke and Auto.Diagnose <> Auto.Diagnose
Zu dem Wert in der Spalte a gibt es unterschiedliche Werte in der Spalte b.
Mit der zitierten SQL-Abfrage bekomme ich keinen Datensatz angezeigt obwohl relevante Datensätze vorhanden sind.
Falls einer schonmal dieses Problem hatte oder ein Tipp für mich hat wäre ich sehr dankbar.
 
G

Gast2

Gast
SQL:
SELECT DISTINCT Auto.Marke, Auto.Diagnose
FROM Auto

Zeigt alles unterschiedlichen Paare an. Sollte doch reichen, oder?
 

ambois

Mitglied
Hallo fassy, vielen Dank.
Das war ja einfacher als ich dachte, ich hatte es schon mit verschachtelten Selects versucht aber auf das DISTINCT wär ich jetzt nicht gekommen.
 

ambois

Mitglied
Hallo

Die Lösung von fassy ist im nachhinein betrachtet nicht ganz richtig.
Und zwar gibt er mir erst alle Datensätze aus und unmittelbar dahinter die unterschiedlichen von DISTINCT betroffenen Datensätze an.
Gibt es auch einen Weg um nur die von DISTINCT betroffenen Datensätze anzuzeigen?

Gruss
 

Michael...

Top Contributor
Wie schaut das Statement zurzeit aus?
Kannst Du mal anhand von Daten zeigen, was in der Tabelle drinsteht und was die Abfrage liefern soll?
 

Janus

Bekanntes Mitglied
SQL:
SELECT DISTINCT A1.Marke, A1.Diagnose
FROM Auto A1, Auto A2
WHERE A1.Marke = A2.Marke and A1.Diagnose <> A2.Diagnose
 

ambois

Mitglied
Hallo
Erstmal danke an Janus, mit deinem Befehl werden jetzt wirklich nur die gewünschten Diskrepanzen angezeigt.
Ist es möglich dieses Ergebniss noch weiter Einzuschränken indem ich noch weitere Bedingungen außerhalb der DISTINCT-Klausel hinzufüge oder wird sowas nicht unterstützt?
Wenn ich den DISTINCT-Abschnitt der SQL-Query von Janus in Klammern setze und davor oder danach noch weitere Bedingungen hinzufügen will oder weiter Spalten angezeigt haben möchte dann gibt es immer einen SQL-Error!

Beispiel:
SQL:
SELECT Auto.Prüfer (SELECT DISTINCT A1.Marke, A1.Diagnose
                    FROM Auto A1, Auto A2
                    WHERE A1.Marke = A2.Marke AND A1.Diagnose <> A2.Diagnose)
FROM Auto 
WHERE....
 
G

Gast2

Gast
Nein, dann musst du jetzt die Tabellen mit sich selber joinen. Mir scheint ehrlich gesagt dein Datenmodell ist verbesserungswürdig. Das würde deine abfragen deutlich vereinfachen. Zeig doch mal was du für Tabellen hast, was die für Spalten haben und welche Contstraints gelten. Schon mal was von Normalisierung gehört?
 

ambois

Mitglied
Hallo nochmals

Ich bin ein gutes Stück weiter gekommen, aber leider noch nicht am Ziel.
Da nach meinen Tabellen gefragt wurde, ich habe folgende Tabellen:

Host(HostID, IP)
Port(PortID, HostID, Port, Protocol, Service)

Nun möchte ich mir die Diskrepanzen(gleicher Port, unterschiedlicher Service) anzeigen lassen:

SQL:
SELECT DISTINCT Port.Port, Port.Service
FROM Port, Port P2
WHERE Port.Port = P2.Port AND Port.Service <> P2.Service
ORDER BY Port.Port

Als Ergebnis bekomme ich folgendes:
Port Service
135 epmap
135 msrpc
137 netbios-ns
137 netbios-ns?
139 smb
139 smb0
.....

Ich schaffe es aber nicht die folgende Darstellung umzusetzen:
IP, Port1, Service1, Port1 Service2

Wie kann ich außerhalb der DISTINCT-Klausel weitere Bedingungen(Host.IP) hinzufügen?
Oder lässt sich diese Darstellung auch ohne das DISTINCT lösen?
 
S

SlaterB

Gast
DISTINCT brauchst du erstmal nicht,
aber du fragst ja gar nicht beide Service ab?
[c]SELECT Port.Port, Port.Service, P2.Service[/c]
wenn es so nicht funktioniert, dann für den ersten Port im Join auch einen Alias einfügen, P1,

zweimal den Port brauchst du eigentlich nicht abfragen wenn der gleich sein soll, kannst du aber natürlich machen,

die IP ist potentiell unterschiedlich für P1 und P2? dann brauchst du sie vielleicht von beiden,
also mindestens einer oder zwei Joins mit der Host-Tabelle, ansonsten keine IP
 

ambois

Mitglied
Vielen Dank SlaterB

Jetzt habe ich das DISTINCT weggelassen und dafür am Ende eine GROUP-BY Klausel drin.
Nun ist es so wie ich es wollte und ich kann zusätzliche Bedingungen hinzufügen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
OnDemand Select * from bringt keine Rückgabe Datenbankprogrammierung 49
OnDemand Select vs Update ins blaue, was ist teurer? Datenbankprogrammierung 11
M JPA: select all mit unterschiedlichem Tablename Datenbankprogrammierung 2
A MySQL Select und Insert in Java Datenbankprogrammierung 15
J JPA: Wie sieht der select aus? Datenbankprogrammierung 2
D geänderte SELECT Abfragen Datenbankprogrammierung 15
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
T sqlite select Datenbankprogrammierung 12
D Oracle NullPointerException bei select mit Null Values Datenbankprogrammierung 5
F MySQL Was bedeuten die Einzelnen Zeichen in Select Querrys? Datenbankprogrammierung 1
J SQL SELECT mit einem Array Datenbankprogrammierung 1
J SELECT Abfrage/Suche Datenbankprogrammierung 4
E Kann man in einer if-Bedingung auch SELECT-Statements überprüfen? Datenbankprogrammierung 23
M SQL-Exception trotz funktionierendem SELECT Datenbankprogrammierung 4
U PostgreSQL SELECT Statement Datenbankprogrammierung 5
L Select Anweisung wird falsch interpretiert Datenbankprogrammierung 3
C HSQLDB Platzhalter in SELECT Datenbankprogrammierung 6
I SELECT bei Datenbankverbindung Datenbankprogrammierung 6
C MySQL JPA - namedQuery (SELECT) -getResultList() - liefert falsches Ergebnis Datenbankprogrammierung 1
S select: alle ergebnisse ermitteln Datenbankprogrammierung 5
G SQLite SQLite Select für View vereinfachen/optimieren Datenbankprogrammierung 4
C SQL-Statement SELECT über 3 Tabellen Datenbankprogrammierung 5
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
W SELECT oder Programm-Logik Datenbankprogrammierung 10
J Hibernate Select auf Parameterliste Datenbankprogrammierung 3
T MySQL Dynamisch Suchen Select Datenbankprogrammierung 4
D ArrayList in Select Datenbankprogrammierung 12
N Select mit join Datenbankprogrammierung 3
F Oracle select sum() join select sum() Datenbankprogrammierung 9
B SELECT ja - INSERT nein (MySQL) Datenbankprogrammierung 3
R Oracle Performance bei SELECT mit vielen Reihen Datenbankprogrammierung 5
T MySQL Db select * und Insert schlagen fehl Datenbankprogrammierung 2
I Select-Statement optimieren Datenbankprogrammierung 14
M Variable in SQL SELECT * FROM ... WHERE mithilfe von PreparedStatement benutzen? Datenbankprogrammierung 28
R Derby/JavaDB Möglichkeit von einem Random Select! Datenbankprogrammierung 6
B Mehrfachschachtelung SELECT Datenbankprogrammierung 2
T MySQL Select: Zusammenfassen von Daten und bilden von Durchschnitt? Datenbankprogrammierung 4
GianaSisters MySQL Datenbank Select error Datenbankprogrammierung 5
R Select Statement als temporärer Table Datenbankprogrammierung 7
R Derby/JavaDB Select Statement Where bedingung will nicht ganz! Datenbankprogrammierung 4
R Derby/JavaDB Select TOP Statement geht nicht Datenbankprogrammierung 3
S MySQL Problem mit SELECT bzw encoding Datenbankprogrammierung 4
B HSQLDB Probleme mit Select...Where Abfrage Datenbankprogrammierung 16
F wie funktioniert if Statement in SELECT? Datenbankprogrammierung 2
J [Hibernate] Select Statement Datenbankprogrammierung 4
Eldorado MySQL SELECT mit GROUP BY und INNER JOIN Datenbankprogrammierung 2
M Hibernate JPQL SELECT optional? Datenbankprogrammierung 2
C Datenbank-Abfrage, if im Select Datenbankprogrammierung 9
G Aufruf von SELECT INTO Datenbankprogrammierung 8
B H2 PreparedStatement SELECT * FROM ? Datenbankprogrammierung 4
X Select Query auf Substring Datenbankprogrammierung 2
S Select eines bestimmten Datensatzes Datenbankprogrammierung 4
M Select * from mydaten where ... Datenbankprogrammierung 4
T Unerwartete Datenbankausgabe bei "select now()" (es wird ein .0 angehängt) Datenbankprogrammierung 5
M Probleme bei Select in Schleife Datenbankprogrammierung 7
G SELECT liefert leere Zeilen Datenbankprogrammierung 32
M SELECT longtext -> als String behandeln Datenbankprogrammierung 6
H Select in einem Select Datenbankprogrammierung 7
G Select- Abfrage Datenbankprogrammierung 19
S Insert mit Select Datenbankprogrammierung 6
G MSSQL Server SELECT Abfrage funktioniert nicht Datenbankprogrammierung 4
R SELECT aus hsqldb mit Parameter Datenbankprogrammierung 2
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
A Problem mit einem Select-Befehl Datenbankprogrammierung 5
E Neues select auf ein vorhandenes Resultset Datenbankprogrammierung 11
A SELECT-Anweisung liefert keine Datensätze zurück Datenbankprogrammierung 9
S Select über mehrere Datenbanksysteme Datenbankprogrammierung 14
P SELECT Datenbankprogrammierung 20
T select Abfrage in Java Integer speichern ? Datenbankprogrammierung 2
B fehler bei select befehl Datenbankprogrammierung 5
S Select von bis in DB2 Datenbankprogrammierung 8
S Select mit PreparedStatement Datenbankprogrammierung 2
E Ein If und ein SELECT in Oracle? Datenbankprogrammierung 2
T Select Statement auf Relation Datenbankprogrammierung 3
S PostgreSQL SELECT/UPDATE etc. Datenbankprogrammierung 4
4 Probleme mit Select abfrage Datenbankprogrammierung 4
G Fehler in der select-Abfrage Datenbankprogrammierung 3
N SELECT: Datensatz sperren Datenbankprogrammierung 6
isowiz SELECT SUM() Ergebnis in Java abfragen Datenbankprogrammierung 6
T LIMIT In SELECT Anweisung Datenbankprogrammierung 4
R Select und Insert in Schleife - Problem mit ResultSet Datenbankprogrammierung 2
G SELECT Name= " " verhindern Datenbankprogrammierung 5
G Syntax für Select - Abfrage mit Variablen Datenbankprogrammierung 39
J SELECT-Statement Datenbankprogrammierung 4
R Select auf der Konsole ausgeben Datenbankprogrammierung 2
D brauche mal kurz hilfe bei einem select-stmt Datenbankprogrammierung 6
G Select-Abfragen sind sehr langsam Datenbankprogrammierung 7
D HSQLSB SELECT Datenbankprogrammierung 9

Ähnliche Java Themen

Neue Themen


Oben