Christian Kruse: diffiziles SELECT

Beitrag lesen

Hallo Sven,

Tja, so einfach ist das nicht. Damit haette ich das User-Dokument und die Attribute dazu,
die als Namen 'username' und als daten 'name' haben. Nicht aber *alle* zu dem Dokument
gehoerigen Attribute.

Kannst du mit einfachen Worten bzw. als Ergebnistabelle mal beschreiben, was du eigentlich
willst? Dann wird's zumindest mir klar, dir vielleicht auch. :)

Du hast:
doc_tab:  id  type
Beispieldaten?

1 5
2 3
3 5
4 6

attr_tab: id  name data
Beispieldaten?

1 "username" "ckruse"
1 "password" "passwort"
1 "vname"    "Christian"
1 "nname    "Kruse"
....

Du willst:
erg_tab: id  type  name  data
Beispieldaten?

1 5 "username" "ckruse"
1 5 "password" "passwort"
1 5 "vname"    "Christian"
1 5 "nname"    "Kruse"

So. Wenn ich den von dir beschriebenen Join benutzen wuerde, wuerde ich eine Ergebnismenge
von genau einer Reihe bekommen, naemlich:

1 5 "username" "ckruse"

Der von mir beschriebene 3er-Join wuerde (vor dem where) eine Tabelle wie folgt liefern:

ID type  j1.name  j1.data  j2.name   j2.data
1 5 "username" "ckruse"   "username" "ckruse"
1 5 "username" "ckruse"   "password" "passwort"
1 5 "username" "ckruse"   "vname"    "Christian"
1 5 "username" "ckruse"   "nname"    "Kruse"
1 5 "password" "passwort" "username" "ckruse"
1 5 "password" "passwort" "passwort"
1 5 "password" "passwort" "Christian"
1 5 "password" "passwort" "Kruse"
....

Eben ein karthesisches Produkt. Deshalb kann ich die Menge durch ein where beschraenken.
Das ist mir aber zu bloed, die Datenmenge kann dadurch naemlich unglaublich gross werden.
Deshalb: gibt es da etwas besseres, dass ich uebersehen habe? :)

Gruesse,
 CK