![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() Halli Hallo!
Wie ich gestern zu meinem Entsetzen feststellen musste, unterstützt MySQL keine verschachtelten Abfragen. Nachdem ich die aber bis jetzt in diversen Access Projekten verwendet habe und nicht wirklich weiß, wie ich diese nun umgehen soll, bräuchte ich eure Hilfe. Ich geh in diesem Fall von zwei Tabellen aus, die eine ist eine Liste von Cocktails mit Namen, CocktailID, etc. und die zweite beherbergt die jeweiligen Zutaten für diese Cocktails. In dieser gibt es also eine CocktailID zur Verknüpfung und dann diverse ZutatenIDs. Nun möchte ich auslesen in welchen Cocktail zb die Zutat Rum und Orangensaft vorkommt. Das ganze würde ich so machen: PHP-Code:
Herzlichsten Dank, Thomas |
![]() |
![]() |
![]() |
#2 |
Veteran
![]() |
![]() naja, wenn du SQL in irgendeiner Wirtssprache (PHP, Java was auch immer) benutzt, könntest du die Subselects vorher als eigene Select ausführen, und deren Ergebnis dann im äußeren Select benutzen..
..oder wenn dir MySQL nicht fix vorgesetzt wird, benutze PostgreSQL. http://www.postgresql.org/
____________________________________
http://vecego.0wnz.at/ |
![]() |
![]() |
![]() |
#3 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() @rollipolli
Ja ich verwende PHP als Wirtssprache und habe es derzeit auch so gelöst, das eben zuerst die zwei unterselects ausgeführt werden, ich die werte dann in strings zwischenspeicher und dann die große Abfrage ausführ... hätt halt gern alles in einem ![]() noch möcht ich nicht auf anderen SQL Dialekt umsteigen, aber falls ich mich im Lauf meines Projektes noch öfters ärger werd ichs mir mal ankucken ![]() |
![]() |
![]() |
![]() |
#4 |
Veteran
![]() |
![]() Natürlich kannst Du das mit Joins lösen. MySQL unterstützt:
[CROSS] JOIN INNER JOIN STRAIGHT_JOIN LEFT JOIN und LEFT OUTER JOIN Und wenn Du Dir PHPMyAdmin besorgst kannst Du auch mit Foreign Keys arbeiten. Weiss jetzt leider die Webseite nicht. mfg Peter
____________________________________
Im Grunde will der Mensch nur eins: Spass haben, glücklich sein und die Zeit so fröhlich wie möglich miteinader zu verbringen. Dafür verzichtet er gerne auf alles andere. --------------------------------------- Unser Motto: Es ist noch kein Meister vom Himmel gefallen, dafür aber jede Menge Nieten Admiral James T. Kirk ---------------------------------------- Ich kommuniziere also mach ich mich verdächtig ---------------------------------------- |
![]() |
![]() |
![]() |
#5 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() Hi!
Ich glaube das geht ganz leicht. Wenn du mit Access eine Abfrage erstellst, wird das passende SQL-Statement mit JOIN erstellt. Eventuell notwendige Anpassungen sind leicht händisch durchzuführen. mfg WB |
![]() |
![]() |
![]() |
#6 |
Veteran
![]() |
![]()
____________________________________
Im Grunde will der Mensch nur eins: Spass haben, glücklich sein und die Zeit so fröhlich wie möglich miteinader zu verbringen. Dafür verzichtet er gerne auf alles andere. --------------------------------------- Unser Motto: Es ist noch kein Meister vom Himmel gefallen, dafür aber jede Menge Nieten Admiral James T. Kirk ---------------------------------------- Ich kommuniziere also mach ich mich verdächtig ---------------------------------------- |
![]() |
![]() |
![]() |
#7 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() @wbendl
Da hast du schon recht, nur leider ist es in Access ziemlich unmöglich (zumindest hab ich es nicht geschafft) diese Abfrage ohne Eingriff in den SQL Code und innerhalb einer einzigen Abfrage zu erstellen. Sonst hätte ich das schon getan. Leider hab ich in Access bis jetzt auch immer nur Inner Joins, die ich einfach durch Where ersetzen kann gesehen. Falls es doch möglich ist, lass ich mich gerne eines bessern belehren. @FellnerPeter Ja, wird mir wohl nichts anderes überbleiben als mich in die Thematik von den diversen Join-Arten einzulesen ![]() mfg Thomas |
![]() |
![]() |
![]() |
#8 | |
Veteran
![]() |
![]() Zitat:
![]() mfg Peter
____________________________________
Im Grunde will der Mensch nur eins: Spass haben, glücklich sein und die Zeit so fröhlich wie möglich miteinader zu verbringen. Dafür verzichtet er gerne auf alles andere. --------------------------------------- Unser Motto: Es ist noch kein Meister vom Himmel gefallen, dafür aber jede Menge Nieten Admiral James T. Kirk ---------------------------------------- Ich kommuniziere also mach ich mich verdächtig ---------------------------------------- |
|
![]() |
![]() |
![]() |
#9 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() hmhm...
hab jetzt nur kurz in PHPmyadmin reingeschnüffelt, aber wenn der Abfrageeditor so wie er in der Standardansicht erscheint alles ist, was abfragemässig drin ist hab ich auch keinen Plan wie ich das dort angehen soll, ohne mich mit joins auszukennen... Inzwischen habe ich mit Hilfe eines ehemaligen Schulkollegens das Problem auf eine andere Weise gelöst: PHP-Code:
mfg Thomas |
![]() |
![]() |
![]() |
#10 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() Hi!
Ich denke die Lösung liegt in der Verwendung von LEFT JOIN oder RIGHT JOIN. Wenn du mir eine Beispiel-DB zur Verfügung stellst, mach ich ein paar Versuche. Eine Access-DB müsste allerdings im Format von Access 97 sein. Dazu noch eine möglichst genaue Beschreibung, wie das Ergebnis aussehen soll. mfg WB |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|