MySQL Abfrage überfordert mich....
ulimativ
- datenbank
0 Lukas
Hi mal wieder...
Also folgende Ausgangssituation:
Ich habe eine Linkliste programmiert mit alle möglichen Features.
So auf der Webseite gibt es 3 Bereiche.
Bereich Besucher, Bereich Kunden, Bereich Firmen.
So jetzt kann man Links auch mit diesen Aspekten versehen, das heisst es gibt Links die nur für Kunden oder nur für Besucher sichbar sind.
Ich habe das folgender weise gelöst. in der Tabelle links gibt es ein Feld Bereiche.
Firmen hat den wert 4, kunden 2, besucher 1. Also ist es ähnlich wie CHMOD gelöst. Besucher sind also "Mitbesitzer" wenn im feld bereich 1,3,5,7 steht.
So jetzt gibt es dazu noch kategorien, jeder link wird einer kategorie zugeordnet.
So jetzt gibt es aber logischerweise kategorien, die nur links für firmen enthalten, bei besuchern aber leer sind.
ich habe nun eine Seite mit dropdownmenu (also eine im jeweiligen bereich), in das die kategorien dynamisch eingelesen werden, aber nur wenn die Kategorie im momentanen Bereich Links enthält.
So nun meine Tabellen:
link_cat: felder name und id
link_links: felder titel, url, ..., kategorie (da steht dann die id aus tabelle link_cat drin), bereich (da steht die zahl drin wie oben beschrieben).
So nun brauche ich also eine Abfrage die mir alle kategorien zurückgibt, diefür den momentanen bereich links enthalten.
geht das ohne join???
SELECT DISTINCT name FROM link_cat lc, link_links ll WHERE ll.cat=lc.id AND ll.bereich >4
liefert mir das richtige Ergebnis, aber sobald ich die id hinzunehm kommt folgende meldung....
(Abfrage: SELECT DISTINCT id,name FROM link_cat lc, link_links ll WHERE ll.cat=lc.id AND ll.bereich >4)
Column: 'id' in field list is ambiguous
Hilfe....
wie löse ich mein prob?
Danke mal, Uli
P.S.: Ja ich kauf mir bald ein MySql-Buch :-)
eigentlich finde ich keinen schwerwiegenden fehler, bis
auf das, dass du auch lc.name schreiben musst und ; am schluss.
das was du hier machst, ist schon ein equi-join
mfg,
lukas
eigentlich finde ich keinen schwerwiegenden fehler, bis
auf das, dass du auch lc.name schreiben musst und ; am schluss.
lc.id is schon richtig, im feld ll.kategorie stehen die ids der kategorien.
aber sobald ich bei der abfrage select id, name schreibe kommt folgendes.
Column: 'id' in field list is ambiguous
Aber das liegt wahrscheinlich daran, dass es in beiden tabellen das feld id gibt
uli
SELECT DISTINCT lc.id,name FROM link_cat lc, link_links ll WHERE ll.cat=lc.id AND ll.bereich >4
habs gelöst...
Uli
ich mein eigentlich, dass su "SELECT lc.name"
schreiben musst. und nicht nur name.
ich hab jetzt leider keine zeit.
falls dir bis am abend niemand geholfen hat,
schau ichs mir nochmal an.
cu,
lukas