phpbar.de logo

Mailinglisten-Archive

LEFT JOIN?

LEFT JOIN?

Heiko Schubert mysql_(at)_lists.phpcenter.de
Fri, 13 Apr 2001 11:59:04 GMT


Hallo Mitleser,

folgendes Problem:

Tabelle "domain" enthält eine Liste von Domainen

CREATE TABLE domain (

   domain_id   INT UNSIGNED NOT NULL AUTO_INCREMENT,
   domain      CHAR(127) NOT NULL,

   PRIMARY KEY(domain_id),
   KEY(domain)
);

In einer zweiten Tabelle soll eine Verknüpfung mit abgelegt werden:

CREATE TABLE daccess (

   daccess_id  INT UNSIGNED NOT NULL AUTO_INCREMENT,
   domain      CHAR(127) NOT NULL,
   uid         VARCHAR(32) DEFAULT '' NOT NULL,

   PRIMARY KEY(daccess_id),
   key(domain),
   key(uid)
);

Das Ziel dieser Tabelle ist es, alle uid abzulegen, denen eine Domaine 
zugeteilt wurde. 

Anmerkung zu den Tabellen: Es ist Absicht, daß hier NICHT optimal 
normalisiert wurde. Mir ist durchaus klar, daß ich bei der Tabelle 
"daccess" beim Attribut "domain" lieber "domain_id" verwenden sollte. Das 
geht bei meinem Problem leider nicht anders ...

Nun zum Problem: Wie zeige ich alle Domainen an, die einer uid noch NICHT 
zugeordnet sind?

Bsp.: Zeige mir alle Domainen die der "1" noch nicht zugeordnet sind.

Tabelle domain:
1,"domaine1.de"
2,"domaine2.de"
3,"domaine3.de"

Tabelle daccess:
0,"domain1.de","1"
3,"domain1.de","1"

Die gesuchte Abfrage sollte 

2,"domaine2.de"

als Ergebnis bringen.

Tja, wie gehe ich hier an die Sache ran? Ich tippe mal auf einen LEFT 
JOIN. Nur stehe ich hier irgendwie auf dem Schlauch. Folgendes habe ich 
versucht:

	SELECT domain.domain_id, domain.domain 
	FROM domain 
	LEFT JOIN daccess 
	ON (daccess.uid='$uid' AND daccess.domain=NULL)

... das zeigt mir aber alle verfügbaren Domainen an, ist also falsch. Ich 
stehe hier total auf dem Schlauch ... hat jemand einen Tip für mich?

Danke schon einmal!

Bye,
	Heiko

---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive