CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
26.09.2008, 21:52:04
|
Anfänger
|
|
Registriert seit: May 2008
Beiträge: 42
|
|
verschachtelte Abfrage
Hi Leute,
ich habe gerade eine Denkhemmung scheint mir vielleicht könnt ihr helfen?
Ich habe vereinfacht drei Tabellen "Musiker", "Country" und "Style"
Die Tabelle "Musiker" hat u.a eine Spalte "StylesID", in der eine oder (als Liste) mehrere ID´s für die jeweiligen Musikstile stehen.
Die Tabelle "Styles" hat je Datensatz jeweils eine ID und den Name des Styles.
Ich suche eine Abfrage, die mir ALLE Styles als Liste liefert, bei meinem Versuch (unten) gibt es immer nur einen Style als Ausgabe.
Das Ergebnis soll so aussehen: MusikerName (Style1, Style2, ... ), CountryName
SELECT *, CountryName, StyleName FROM Musiker
LEFT JOIN Style ON ArtistStyles = StylesID
LEFT JOIN Country ON ArtistCountry = CountryID
ORDER BY ArtistCountry
Wie wäre denn die richtige Lösung?
Vielen Dank schon mal!
D.
|
26.09.2008, 22:30:25
|
Anfänger
|
|
Registriert seit: Sep 2008
Alter: 54
Beiträge: 37
|
|
AW: verschachtelte Abfrage
Zitat:
Die Tabelle "Musiker" hat u.a eine Spalte "StylesID", in der eine oder (als Liste) mehrere ID´s für die jeweiligen Musikstile stehen.
|
Hallo Dag,
deine Datenbankstruktur ist nicht optimal, denn Listen sollten nicht in einem DB-Feld abgespeichert werden.
Hier ist mein Vorschlag:
ARTIST
id | name | country_id
STYLE
id | name
COUNTRY
id | name
ARTIST_STYLE_REL
artist_id | style_id
und die Query würde ungefähr so aussehen:
PHP-Code:
SELECT
a.name AS artist_name,
GROUP_CONCAT(s.name) AS styles
FROM
artist a
LEFT JOIN
artist_style_rel asr
ON
asr.artist_id = a.id
LEFT JOIN
style s
ON
s.id = asr.style_id
GROUP BY
a.id
|
26.09.2008, 22:38:35
|
Anfänger
|
|
Registriert seit: May 2008
Beiträge: 42
|
|
AW: verschachtelte Abfrage
Hey, hab´s fast schon vermutet, dass meine Lösung nen Haken hat. Vielen Dank für die schnelle und kompetente Antwort!
|
27.09.2008, 01:24:42
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: verschachtelte Abfrage
Zitat:
Zitat von Dag
Ich habe vereinfacht drei Tabellen "Musiker", "Country" und "Style"
|
Beschäftige Dich mit dem Spaltentyp (Attribut) SET, falls 64 unterschiedliche Musikrichtungen ausreichen sollten.
|
13.03.2009, 20:08:05
|
Anfänger
|
|
Registriert seit: Mar 2009
Alter: 62
Beiträge: 4
|
|
AW: verschachtelte Abfrage
Ich möchte mal mit gutem Beispiel voran gehen...
Ich habe seit 2 Tagen an einem sehr ähnlichen Problem rumgedoktort (baue eine Art Wordpress Miniblog nach). Kam nicht auf die Lösung (Ein Artikel wird einer oder MEHREREN Kategorien, sowie einem oder MEHREREN Ländern zugeordnet)... Ich habe es geschaft, alle Artikel auszugeben, jedoch immer nur mit einer Kategorie und nur mit einem Land...
Finde mal dazu ne Lösung (welche Suchwörter verwenden???)... Habe hier im Forum gesucht, nicht wirklich gefunden (mangels Suchwörtern)... Wollte schon nen neuen Fred aufmachen, habe dann aber die letzten 6 Seiten (fast jeden Artikel) durchforstet und bin schließlich hier fündig geworden!
VIELEN DANK! Das hat auch mir perfekt geholfen.
Danke an die vielen aktiven Antworter (subjektiv ist mit der CRISPS aufgefallen, der hat in den letzten Tagen / Wochen wohl fast jeden Artikel (den ich durchgelesen habe) beantwortet :-)
Danke nochmal, der Sebi (macht ein Feierabend Leffe für Euch auf!)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:11:49 Uhr.
|