Wie koennte die SQL Query aussehen?

Status
Nicht offen für weitere Antworten.

EOB

Top Contributor
hallo, ich habe folgendes ER modell: link

ist zwar auf norwegisch, aber man kann sich das ja ein bisschen denken :cool:. ich moechte jetzt daraus zum beispiel alle kategorien (kategori) holen, die als farbe (farge) gruen haben und einen produktpreis (produkt) zwischen 300 und 500 haben. wie koennte ich das wohl anstellen?

kategorie koennte zum beispiel 'schmuck' sein und farbe eben eine farbe, zum beispiel 'gruen'. bei produkt gehts mir erstmal nur um das attribut pris (preis). also als konkretes beispiel:

suche jeden gruenen schmuck, der zwischen 300 und 500 euro kostet.

wie wuerde das gehen? das sind doch sicher select in select und so?

danke :)
 

AlArenal

Top Contributor
quick & dirty:

Code:
SELECT 
	p.id, p.produktnavn, k.knavn, f.fargenavn 
FROM 
	produkt p, produktkategori pk, kategori k, farge f, produktfarge pf
WHERE
	p.id = pf.produktid AND
	pf.fargeid = [f.id der grünen Farbe] AND
	p.merkeid = pk.produktid AND
	pk.kategoriid = [k.id von Schmuck] AND
	p.pris >= 300 AND
	p.pris <= 500 AND
 

EOB

Top Contributor
hi, vielen dank. sieht ja schonmal gut aus. allerdings bringt er mir immer ein empty set. also entweder passt das in meiner db nicht, oder es ist ein fehler im obigen sql code....ne idee?

danke :)
 

AlArenal

Top Contributor
Code:
SELECT
   p.id, p.produktnavn, k.knavn, f.fargenavn
FROM
   produkt p, produktkategori pk, kategori k, farge f, produktfarge pf
WHERE
   pf.produktid = p.id AND
   pf.fargeid = [f.id der grünen Farbe] AND
   pk.produktid = p.id AND
   pk.kategoriid = [k.id von Schmuck] AND
   p.pris >= 300 AND
   p.pris <= 500 AND
 

EOB

Top Contributor
hm...geht immer noch nicht so recht. er bringt mir zwar resultate, aber es sind zu viele....nicht nur gruen zum beispiel. ich habs schon probiert...hm...noch ne idee?

danke :)
 

The_S

Top Contributor
Code:
SELECT, knavn, bildesti FROM kategori WHERE id IN
(SELECT kategoriid FROM subkategori WHERE id IN
(SELECT subkategoriid FROM produkt WHERE pris BETWEEN 300 AND 500 AND id IN
(SELECT produktid FROM produktfarge WHERE id IN
(SELECT id FROM farge WHERE fargenavn='gruen'))))

Spontan so, ohne größer drüber nachzudenken ;) .
 

AlArenal

Top Contributor
ist ein wenig doof, wenn man es selbst nicht testen kann und natürlich liegt mein "Practical SQL" auf der Arbeit und ich hocke daheim (Lichtmaschine am Eimer)....
 

AlArenal

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Code:
SELECT, knavn, bildesti FROM kategori WHERE id IN
(SELECT kategoriid FROM subkategori WHERE id IN
(SELECT subkategoriid FROM produkt WHERE pris BETWEEN 300 AND 500 AND id IN
(SELECT produktid FROM produktfarge WHERE id IN
(SELECT id FROM farge WHERE fargenavn='gruen'))))

Spontan so, ohne größer drüber nachzudenken ;) .

Und in der Hoffnung, dass er ne DB hat die Subselects unterstützt.
Da kannste aber mit EXPLAIN noch gaaaaanz lange optimieren.
 

EOB

Top Contributor
geht auch nicht...hm....misst. aber gehen sollte es doch, oder?

gruesse

ps: ich probiere auch rum!
 

The_S

Top Contributor
Evtl. hilft es wenn du sagst was nicht geht ;) . Aber da geb ich AlArenal recht, es ist echt blöd wenn man das nicht selber testen kann ...
 

EOB

Top Contributor
es kommt Empty Set zurueck...also findet er nix...muesste aber, da genuegend datensaetze drin sind.

gruesse
 

yajp

Mitglied
hmm probier mal das, ich bin davon ausgegangen dass naven = name ;-)

SELECT id, produktnavn FROM produkt WHERE
produkt.id = produktkategoriid AND
produktkategoriid.kategoriid = kategori.id AND
kategori.knavn = 'Schmuck' AND
produkt.id = produktfarge.produktid AND
produktfarge.fargeid = farge.id AND
farge.fargenaven = 'gruen' AND
produkt.pris BETWEEN 300 AND 500


grüsse
 

EOB

Top Contributor
hi, habs jetzt so geloest und scheint zu klappen:

Code:
SELECT p.produktnavn, k.knavn FROM produkt p JOIN (produktkategori pk, kategori k) ON (p.id=pk.produktid AND 
pk.kategoriid=k.id) JOIN (produktfarge pf, farge f) ON (p.id=pf.produktid AND pf.fargeid=f.id) where k.id = '1164113247767' and p.pris between 0 and 5000 and f.id = '1164113248104';

gruesse und dank an euch!!
 

EOB

Top Contributor
moinsen, so, nu hab ich das problem, dass ich nicht weiss, wie ich bei dieser query sagen kann, dass ich ALLE kategorien will, also nicht nur zb. schmuck, der gruen ist und zwischen 300 nud 500 kostet. oder alles was gruen ist, oder alles was schmuck ist und zwischen 300 und 500 kostet. jemand ne idee?

danke :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna PostgreSQL-Query in eine MicrosoftSQL-Query konvertieren - chatGPT hilft nur bedingt. Datenbankprogrammierung 3
L JPA EclipseLink PostgreSQL auslesen mit Query Datenbankprogrammierung 2
T TRIM in Query Datenbankprogrammierung 3
D sql query in methode mit rückgabetyp Datenbankprogrammierung 14
OnDemand Mysql Query Builder Datenbankprogrammierung 1
P Herausfinden wann Query null zurück gibt? Datenbankprogrammierung 1
OnDemand SQL Query Optimierung Datenbankprogrammierung 28
Kirby.exe Verwirrung beim Query Datenbankprogrammierung 4
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
M Oracle Query umbauen (sind die Querys gleich?) Datenbankprogrammierung 5
B Frage bei einer SQL Query Datenbankprogrammierung 3
C Fehlerhafte SQL Query Datenbankprogrammierung 4
B MySQL Query (Anfängerfrage :D) Datenbankprogrammierung 3
B JPA / HQL Support bei Query - Distanzberechnung Datenbankprogrammierung 0
D JPQL- Query über mehrere Tabellen Datenbankprogrammierung 7
Thallius MySQL Was ist falsch an dem Query? Datenbankprogrammierung 2
Thallius MySQL Wo ist der Fehler in dem Query? Datenbankprogrammierung 2
OnDemand MySQL SQL Query Datenbankprogrammierung 2
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
B Leerzeichen nach Umlaut -> Sichtbar erst nach Query! Datenbankprogrammierung 6
S sql query, um bestimten datensatz zu finden Datenbankprogrammierung 33
OnDemand SQL Query Anzahl der Werte Datenbankprogrammierung 8
H MySQL Anderer Query-Ansatz? Datenbankprogrammierung 4
P Tricky SQL Query Datenbankprogrammierung 3
P SQL Query Problem Datenbankprogrammierung 14
I Nullpointer bei einfacher Daba query Datenbankprogrammierung 12
I Query für Geburtstage Datenbankprogrammierung 6
S MYSQL: "Packet for query is too large" Datenbankprogrammierung 0
S HSQLDB PrepareStatement- Falsche query Datenbankprogrammierung 2
F Oracle The parameter name [...] in the query's selection criteria does not match any parameter name d Datenbankprogrammierung 2
J Fehler bei mySQL Query Datenbankprogrammierung 19
R MySQL berechnete Spalte im selben query weiterverwenden? Datenbankprogrammierung 4
S MySQL Hochkommata in Query Datenbankprogrammierung 7
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
T HQL Query funktioniert nicht? Datenbankprogrammierung 8
M PostgreSQL Hibernate Query Restriction Datenbankprogrammierung 2
N Query für Derby DB mit Enterbrise Bean Datenbankprogrammierung 4
algebraiker Eclipse RCP - no persistent classes found for query class Datenbankprogrammierung 4
M List aus Hibernate Query Datenbankprogrammierung 5
M JPA-Query - nicht das komplette Objekt Datenbankprogrammierung 4
M Problem mit Hibernate und Named Query Datenbankprogrammierung 1
S DB2 Eclipselink Query Datenbankprogrammierung 2
LadyMilka Ergebnistyp HQL-Query Datenbankprogrammierung 3
M Frage zu folgender Query in EJB-QL Datenbankprogrammierung 4
Eldorado MySQL HQL Query Tag von Date Datenbankprogrammierung 6
H DB auslesen (Hibernate, Query, Parameter) Datenbankprogrammierung 8
C Split String für SQl query Datenbankprogrammierung 10
C setSelectedValue in SQL Query übergeben Datenbankprogrammierung 20
D Hibernate: Query verarbeiten Datenbankprogrammierung 11
B Hibernate, einfaches Query Ausgeben Datenbankprogrammierung 4
X Select Query auf Substring Datenbankprogrammierung 2
L Query grafisch erzeugen Datenbankprogrammierung 6
N SQL Query Browser Error Datenbankprogrammierung 6
B Suche Query um genau einen Wert einer def. Gruppe aus einer Tabelle zu erhalten. Datenbankprogrammierung 2
Chtonian Effizientes Query System für Wortnachschlagewerk Datenbankprogrammierung 9
D Hibernate, Criteria Query Datenbankprogrammierung 2
T JPQL Query für eine Tabellenansicht Datenbankprogrammierung 2
G JPQL L*KE / JPA Query Language Datenbankprogrammierung 9
O SQL-Query bringt Fehler Datenbankprogrammierung 4
D kurze Frage zu einem Query Datenbankprogrammierung 6
S Query aus Querys Datenbankprogrammierung 14
P [Hibernate] Criterion-Query in HQL übersetzen Datenbankprogrammierung 10
D Neuer Query wird nicht erkannt Datenbankprogrammierung 10
B mysql query ausführen Datenbankprogrammierung 4
N Fehler beim matchen von Strings via Query Datenbankprogrammierung 2
G How to put SQL query result into a file Datenbankprogrammierung 3
B Ein Query mit Mysql erzeugen Datenbankprogrammierung 6
G Hilfe bei Query für Spaltenansicht. Datenbankprogrammierung 20
A Fehler bei query Datenbankprogrammierung 7
G SQL-Query Methode Datenbankprogrammierung 4

Ähnliche Java Themen


Oben