2Danke
ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
446
446
EMPFEHLEN
-
Hallo,
ich habe eine Tabelle mit Autos, wo jede ID einem Typen OHNE Baujahr entspricht.
In einer zweiten Tabelle habe ich AutoID, Baujahr und Preis, wo ich nun ALLE AutoIDs abfragen möchte, die es genau in den Baujahren 1998, 1999 und 2000 gibt.
Hat da jemand eine Idee, wie das gehen soll?
Gruß, Tommy
-
Jepp. Du brachst die erste Tabelle gar nicht.
Code sql:1 2 3 4 5 6
SELECT autoIid FROM table2 WHERE baujahr IN (1998, 1999, 2000)
Ok, du willst wahrscheinlich noch die AUto-Infos dazuhaben. Dann gibts ein INNER JOIN
Code sql:1 2 3 4 5 6 7 8 9 10
SELECT t2.autoIid t1.TYPE, t1.marke FROM table2 AS t2 INNER JOIN table1 AS t1 ON t2.autoid = t1.id WHERE t2.baujahr IN (1998, 1999, 2000)
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hallo Yaslaw,
IN ist doch eine ODER Verknüpfung?
Also ich brauche ja die AutoIDs, die genau ALLE Baujahre besitzen und nicht nur eins von denen.
Gruß, Tommy
-
Aso. Alles klar. Dort ist das Problem behoben.
Filtern, Gruppieren und Zählen
Code sql:1 2 3 4 5 6 7 8 9 10
SELECT autoid FROM table2 t2 WHERE t2.baujahr IN (1998, 1999, 2000) GROUP BY autoid HAVING COUNT(*) = 3
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Super danke,
das habe ich gesucht
-
Hi Yaslaw,
irgendwas stimmt da nicht. Also ich kriege da komplett wirre Ergebnisse.
Wenn ich die Auto IDs nun nach Baujahren überprüfe, habe ich meist exakt nur EINEN Treffer.
Sogar folgendes Statement liefert Ergebnisse:
Code :1 2 3 4 5 6 7 8 9 10
SELECT autoid FROM table2 t2 WHERE t2.baujahr IN (789, 98765, 2000) GROUP BY autoid HAVING COUNT(*) = 3
Gruß, Tommy
-
Ich geh von MySQL aus. Du Auch?
Ist Baujahr Varchar?
Mein Test funktioniert
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
SELECT autoid FROM -- Tabelle simulieren ( SELECT 1 AS autoid, 1972 AS baujahr UNION SELECT 1 AS autoid, 1973 AS baujahr UNION SELECT 1 AS autoid, 1974 AS baujahr UNION SELECT 1 AS autoid, 1975 AS baujahr UNION SELECT 1 AS autoid, 1976 AS baujahr UNION SELECT 2 AS autoid, 1973 AS baujahr UNION SELECT 2 AS autoid, 1974 AS baujahr UNION SELECT 2 AS autoid, 1977 AS baujahr UNION SELECT 2 AS autoid, 1978 AS baujahr ) AS t1 WHERE baujahr IN (1972, 1973, 1974) GROUP BY autoid HAVING COUNT(*) = 3 -- gibt 1 zurück
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Also ich benutze Postgres und dein Beispiel funktioniert.
Teste ich vergleichbare Statements an anderer unserer Tabellen, klappt es auch. Aber das Statement, bei der Tabelle, wo ich es brauche, funktioniert nicht. Kann das vielleicht daran liegen, dass die Tabelle partitioniert ist, was ich aber nicht glaube. Oder vielleicht eine andere Idee, woran es liegen kann. Die Ergebnisse, die ich kriege, sind wirr und haben meist nur eine Übereinstimmung.
Gruß, Tommy
-
Sorry, kenne Postgres nicht.
- Wie schon beschrieben - ist Baujahr als Nummer gespeichert?
- Hast du ev. mehrere Einträge mit der gleichen Kombination autoid/baujahr?---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
- Wie gesagt, funktioniert identisch.
- Ja, sind Zahlen.
- Ja, ich habe tausende Einträge mit der gleichen Kombination autoid / baujahr.
EDIT: Wenn ich vorher ein GROUP BY über ein Subquery mache, dann funktioniert es. Der Fehler lag darin, dass es mehrere Einträge mit der gleichen Kombination gab.
Vielen Dank!Geändert von Tommy57 (16.01.12 um 01:15 Uhr)
Ähnliche Themen
-
Onmouseover über mehrere Zeilen
Von Antispy im Forum Javascript & AjaxAntworten: 9Letzter Beitrag: 30.07.08, 11:14 -
Onmouseover über mehrere Zeilen
Von Antispy im Forum CSSAntworten: 0Letzter Beitrag: 28.07.08, 10:07 -
ColumnHeader über mehrere Zeilen
Von cHucKy51 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 8Letzter Beitrag: 27.06.07, 10:17 -
regex über mehrere Zeilen
Von r0bby im Forum JavaAntworten: 5Letzter Beitrag: 14.06.06, 15:26 -
regex über mehrere Zeilen
Von r0bby im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 14.06.06, 10:50





Zitieren

Login





