ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
488
488
EMPFEHLEN
-
30.04.03 09:17 #1
- Registriert seit
- May 2002
- Ort
- luzern (schweiz)
- Beiträge
- 62
tach ihrser
also, ich hab folgendes prob:
ich hab im mysql einerseits ne tabelle mit allen adressen. mit 0- oder 1-werten wird in verschiedenen spalten festgelegt, ob die adresse zu nem kunden, lieferanten, partner oder zu mehreren gehört.
so weit so gut, ****t auch alles tiptop.
aber wenn ich in ner zweiten tabelle mit den projekten die verknüpfungen (über id-wert der adress-tabelle) mache, sind ja pro projekt mehrere adressen verknüpft.
und wenn ich dann die abrage wie gewohnt mache:
$ergebnis = mysql_query( "SELECT * FROM projekte_gu p, adressen a
WHERE p.kunde = a.id
ORDER by $ord $dir " );
$anz_reihen = mysql_num_rows( $ergebnis );
for ( $i="0"; $i<$anz_reihen; $i++)
{
$id = mysql_result($ergebnis, $i, "p.id");
$kunde = mysql_result($ergebnis, $i, "a.name");
usw...
}
is das auch ganz nett ... aber weil ich ja mehrere adressen pro projekt habe, wird mit a.name kaum der korrekte gewählt.
is mein prob einigermassen verständlich?
wie könnt man das umgehen?
ich hab mir schon überlegt, bei jedem projekt für den kunden nochmal ne eigene abfrage zu machen ( $ergebnis_projekt = mysql_query( "SELECT * FROM adressen WHERE id = $kunde " ); ), aber dann kann ich die ganze abfrage nicht nach dem kunden oder dem lieferanten sortieren lassen. und das würd ich schon gern.
oder ich mach pro adress-art (kunden, lieferanten, partner ... ) ne eigene adresstabelle. aber dann müsst ich die auch einzeln verwalten und könnt in ner gesammtübersicht auch net beliebig sortieren.
thxHOSSA!
TheMike
-
eine andere sql abfrage löst das problem:
SELECT * FROM projekte_gu as p, adressen as a on p.kunde=a.id
WHERE ...... usw
-
30.04.03 10:25 #3
- Registriert seit
- May 2002
- Ort
- luzern (schweiz)
- Beiträge
- 62
hmm ... mal ganz abgesehen davon, dass bei mir ne fehlermeldung wegen ner ungültigen abfrage kommt, wenn ich das probiere - soweit ich das verstehe, ist damit das prob net gelöst.
die abfrage ****t ja so wie ichs oben beschrieben hab, aber bei der zuweisung der variablen gibs probleme, weil ich halt mehrer adressen mit dem projekt verknüpft hab und somit auch mehrere a.id's habe ...HOSSA!
TheMike
-
na undund somit auch mehrere a.id's habe ...

da wir mit meinem beispiel eine join verbindung haben geht das
die - on - angabe gibt ja an wie die felder verküpft werden sollen
on p.kunde=a.id verküpft die felder kunde und id
auch wenn pro p.kunde viele a.id vorhanden sind geht das ...
zb die abfrage
SELECT * FROM projekte_gu as p join adressen as a on p.kunde=a.id
WHERE p.kunde='1'
gibt die kundeninformation und die aufträge von der kundenid 1 aus
-
30.04.03 10:48 #5
- Registriert seit
- May 2002
- Ort
- luzern (schweiz)
- Beiträge
- 62
jepp ... dat is schon klar ... aber ... *malaushol* ...
in jedem projekt hab ich halt neben dem kunden auch nen lieferanten, nen auftraggeber usw verknüpft - und alle aus der selben adress-tabelle.
neben dem p.kunde hab ich also noch p.lieferant, p.auftraggeber usw ...
und somit hab ich für all diese daten ne unterschiedliche a.id ...
wie kann ich da nun die richtige zuordnen bei:
$kunde = mysql_result($ergebnis, $i, "a.name");HOSSA!
TheMike
-
nu gut...
auch mal weit aushol
so wie es verstanden habe hast du ne projekt tabelle mit kundenid, liferantenid und auftragid
dann muss man natürlich alle idfelder mit der adressid verknüpfen
select * from projekt as p left join adresse as k on p.kunde=k.id left join adresse as l on p.liefer=l.id left join auftrag as a on p.auftrag=a.id
-
01.05.03 10:07 #7
- Registriert seit
- May 2002
- Ort
- luzern (schweiz)
- Beiträge
- 62
goil ... dat ****t

ich weiss zwar noch net ganz im detail wie und warum - aba es ****t ... und das is mal die hauptsache
thx a lot
HOSSA!
TheMike
-
warum das geht

nun gut
tab_a left join tab_b on tab_a.id=tab_b.id
der left join verküpft die beiden tabellen miteinander und in der on angabe wird angegeben welche felder die beiden tabellen verküpfen
durch das wörtchen left bleibt die linke tabelle vollständig und nur die datensätze der rechten tabelle die nicht der bedingung entspechen werden entsorgt
da sql von links nach rechts arbeitet
muss man gedanklich klammern setzen
sprich (((a join b) join c) join d) ist ja die kurzversion
bedeutet erst der join zwischen a und b und das ergebnis wird mit tabelle c verküpft und das ergebnis wieder mit d
hoffe klarer geworden
Ähnliche Themen
-
Mehrere Uploads in mehreren Datensätzen
Von Duergy im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 10.01.11, 11:49 -
JOINs mit mehreren Datensätzen verarbeiten
Von JOINFRAGENSEPP im Forum PHPAntworten: 1Letzter Beitrag: 09.09.10, 10:50 -
Probleme mit Inner Join bei mehreren Datensätzen gleicher verbindung
Von crsakawolf im Forum PHPAntworten: 5Letzter Beitrag: 16.03.10, 12:48 -
eval() geht nicht bei mehreren Datensätzen
Von schecker im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 17.11.09, 09:02 -
Vergleich mit mehreren Datensätzen
Von MelBib im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 22.09.05, 15:49





Zitieren
Login





