# Einzelne SQL Abfragen, oder alles zusammen? (veraendert!!!)



## EOB (29. Nov 2006)

hallo, hab nochmal eine frage zu meiner datenbank . ich habe hier dieses schema. jetzt moechte ich einfach nur nach einem begriff suchen und alle ergebnisse ausspucken. bis jetzt mach ich das einzeln, also er st fuer Produkt, dann Farge und so weiter. 

ginge es auch, dass in EINE sql query zu quetschen? bin noch relativ neu auf dem gebiet sql, darum bitte nacsicht walten lassen. ich moechte also einen begriff, wie zb _schmuck_ in allen tabellen suchen, ausgenommen von 2-3 tabellen. aber das ist ja jetzt erstmal egal. 

jemand eine idee, ob das geht?


vielen dank


----------



## Caffè Latte (29. Nov 2006)

HI,

wenn du Produkte und Fargen (was ist das?) unabhängig voneinander gelistet haben willst, dann brauchst du schon mehrere Statements. Wenn du allerdings von den selektierten Produkten deren Fargen haben willst, dann geht das mit einem Statement. Dazu brauchst du einen sog. JOIN.

Erklär dich mal dazu ...


----------



## SlaterB (29. Nov 2006)

na die Frage scheint mir schon recht deutlich,
stelle dir 5 Tabellen vor, jeweils eine Spalte Id und noch andere Attribute,
nun sollen alle Einträge zu Id '17' in allen Tabellen geladen werden,

wie, ist egal, hauptsache nur eine Anfrage (möglichst schnell also),
Aufbröseln der Ergebnisse wird dann schon zu schaffen sein wenn erstmal die Anfrage klar ist,

über Join aller Tabellen vielleicht irgendwie ganz komisch machbar?


----------



## EOB (30. Nov 2006)

hei, also ich moechte das nun doch anders machen. also oben sieht man ja das er modell. ich moechte jetzt einen begriff eingeben und alle produkte (tabelle produkt) finden, in der dieser begriff vorkommt. also muesste das komplette produkt inkl. aller damit verbundenen dinge nach dem begriff durchsucht werden. ich habs jetzt schon mit MATCH probiert, geht aber nicht, da mene DB das nicht zulaesst   :roll: . 

dann dachte ich, ich suche einen brgriff in allen tabellen und fuege die ergebnisse zusammen...das geht aber eben auch nicht. wenn ich zum beispiel 'weiss' suche, kommt sicher ein treffer, da 'weiss' in der tabelle frage enthalten ist. aber es muss noch lange kein 'weisses' produkt geben. ihr versteht? es muss auf ein produkt hinauslaufen.

hab jetzt sowas, aber das haut nicht hin..aber so in er art?

_
SELECT produktnavn FROM produkt AS p, farge AS f,sted AS s, kategori AS k WHERE (p.produktnavn LIKE '%hvit%' OR f.fargenavn LIKE '%hvit%' OR s.bynavn LIKE '%hvit%') AND p.id = k.id
_

fuer tips waere ich dankbar   .

gruesse


----------



## EOB (1. Dez 2006)

keine ne idee? das muss irgendwie gehen...ich komm nicht drauf :-|

gruesse


----------



## Caffè Latte (1. Dez 2006)

Hi,

ja, so in der Art müsste das gehen. Um welches DBMS handelt es sich denn und was haut nicht hin (Fehler?)?


----------



## SlaterB (1. Dez 2006)

mach doch erstmal deutsche Namen, vorher wagt keiner da rein zuschauen,

und dann fange mit 1-2 Tabellen an, damit man überhaupt durchsieht 

ich weiß es immer noch nicht..


----------



## Caffè Latte (2. Dez 2006)

... was mir auch noch einfällt:

bau den SQL-String nach und nach in einem Abfragetool deines DBMS nach und nach auf.


----------



## Mörketid (3. Dez 2006)

hi, also das waer dann mysql als datenbank. ich koennte die namen deutsch machen, aber man kann die auch lesen...mit fantasie . eine volltextsuche ist ja kein problem, es muss eben noch die abfrage rein, ob der treffer in irgeneiner weise ein produkt ist...

danke und gruesse


----------



## EOB (4. Dez 2006)

hi, also ich hab das jetzt mal auf englisch gemacht ...da ists wohl doch eindeutiger. das problem ist wie gesagt nicht, einen begriff in der datenbank zu suchen. das problem ist, rauszufinden, ob es am ende ein produkt ist. sowas wie if noch mit rein? ich koennte es auch mit hibernate machen, falls es damit einfacher ist...jemand ideen? meine sind am ende :-|. ach ja, es kommt kein fehler, es bringt nur keine ergebnisse...also empty set.

vielen dank


----------



## Prinz (10. Dez 2006)

ja so ist das richtig!

Den Join machst du ja schon implizit. 



Schau dir allerdings nochmal dein Schema an. Ist meiner meinung nicht normalisiert.


----------



## Prinz (10. Dez 2006)

AND p.id = k.id 

ist das nicht unnötig?


----------

