phpbar.de logo

Mailinglisten-Archive

[php] OT: mysql klausel gesucht

[php] OT: mysql klausel gesucht

Martin Adler martin.adler at continum.net
Don Aug 24 16:34:57 CEST 2006


Korrektur!

Martin Adler wrote:
> Mir ist die Relation zwischen contacts und cat nicht ganz schlüssig. Aus 
> dem beispiel ist zumindest herauszulesen, das jede cat zu mehreren 
> contacts zugeordnet werden kann. Scheinbar kann jeder contact nur eine 
> cat haben (1:n).
> Wenn jeder contact in deiner Anwendung mehrere cat's haben kann (n:m), 
> benötigst wie schon vorgeschlagen eine dritte Tabelle, welche die 
> Verknüpfungen herstellt.

Ich sehe gerade es ist eine n:m Beziehung...
Du brauchst definitiv eine dritte Tabelle. dann konnte der Query so 
aussehen.

SELECT `contacts`.*, `cat`.`id`, `cat`.`val`
FROM
     `contacts` INNER JOIN
     `contacts_has_cat` ON `contacts`.`id` = 
`contacts_has_cat`.`contacts_id` INNER JOIN
     `cat` ON `contacts_has_cat`.`cat_id` = `cat`.`id`
WHERE
     (`cat`.`id` = 14 AND `cat`.`val` = 144)
     OR
     (`cat`.`id` = 18 AND `cat`.`val` = 188)

Hab nun auch gesehen das eine Kategorie auch mehrere Werte enthalten 
kann. Diese Werte sollten im Grunde auch in eine extra Tabelle 
ausgelagert und mit der Kategorie verknüpft werden.

So hoffe mir ist nicht wieder weiteres, wesentliches entgangen.

grüße
Martin

php::bar PHP Wiki   -   Listenarchive