phpbar.de logo

Mailinglisten-Archive

[php] Abfrage über Zwischentabelle

[php] Abfrage über Zwischentabelle

Trawell Mildor trawell.mildor at gmail.com
Do Okt 6 15:12:47 CEST 2011


Hallo Robert.

Wie soll das gehen, zwei Felder mit PK ? Ich kann doch nur ein Datenfeld als
PK definieren ?

Gruss, Trawell

Am 6. Oktober 2011 10:59 schrieb Robert Hartung <r.hartung at roberthartung.de>
:

> Hallo Trawell,
>
> Die Zuordnungtabelle könnte auch der Einfachheit halber nur  artikel +
> shop_id (beide im PK) beinhalten. Das ist noch besser! So verhinderst du
> doppelte Zuordnungen!
>
> ansonsten hat André mit der Abfrage schon recht.
>
> Ansonsten müsstest du bei Andrés Lösung den Spaltentyp von Integer /
> Varchar
> zu "SET" ändern.
>
> Grüße
> Robert
>
> -----Ursprüngliche Nachricht-----
> Von: php-bounces at phpbar.de [mailto:php-bounces at phpbar.de] Im Auftrag von
> A.
> Sauder
> Gesendet: Donnerstag, 6. Oktober 2011 10:55
> An: deutschsprachige PHP-Mailingliste
> Betreff: Re: [php] Abfrage über Zwischentabelle
>
> Hallo Trawell
>
> Das SQL für deine Abfrage wäre:
> SELECT tbl_artikel.*
> FROM tbl_zuordnung
> LEFT JOIN tbl_artikel ON tbl_artikel.id_artikel =
> tbl_zuordnung.id_artikel
> WHERE tbl_zuordnung.shop = '99'
> ORDER BY tbl_artikel.artikelname
>
>
> Die Zuordnungstabelle ist an und für sich keine Schlechte Idee.
> Es gibt da noch eine andere Lösung die du machen könntest:
>
>  -----------------
>  tbl_artikel
>  -----------------
>  id_artikel (pk)
>  artikelname
>  shop_id_liste   <-- Hier kommen, mit Komma getrennt, die ID der Shops
> rein (z.B. 12,45,99)
>  -----------------
>
>  -----------------
>  tbl_shops
>  -----------------
>  id_shop (pk)
>  shopname
>  -----------------
>
> Dadurch wäre die Abfrage dann:
> SELECT tbl_artikel.*
> FROM tbl_artikel
> WHERE FIND_IN_SET('99', tbl_artikel.shop_id_liste) > 0
> ORDER BY tbl_artikel.artikelname
>
>
> Gruss André
>
>
> Am 06.10.2011 10:44, schrieb Trawell Mildor:
> > Hallo zusammen
> >
> > Als völliger Neuling in diesem Thema habe ich wieder mal ne Frage
> >
> > ich habe in MySQL drei Tabellen erstellt
> >
> >
> > -----------------
> > tbl_artikel
> > -----------------
> > id_artikel (pk)
> > artikelname
> > -----------------
> >
> >
> > und hier die zweite Tabelle
> >
> > -----------------
> > tbl_shops
> > -----------------
> > id_shop (pk)
> > shopname
> > -----------------
> >
> >
> >
> > So, und nun will ich ja Artikel mit Shops verknüpfen, ich meine,
> > jeder
> > Artikel kann mehreren Shops zugeteilt werden, aber auch ein Shop kann
> > mehrere Artikel haben.
> >
> > Also hab ich eine dritte Tabelle für die Zuordnung gemacht
> >
> > die sieht so aus
> >
> >
> > -----------------
> > tbl_zuordnung
> > -----------------
> > id_zuordnung (pk)
> > id_artikel
> > id_shop
> > -----------------
> >
> >
> > in dieser Tabelle würde dann halt stehen, Artikel 1 gehört zu Shop 3,
> > Artikel 4 gehört zu Shop 99, Artikel gehört zu Shop 3 und so weiter.
> >
> > Wie sieht nun ein Abfrage Befehl aus, wenn alle Artikel von Shop 99
> > sehen
> > will ?
> >
> > Verwende ich diesen Abfrage Befehl auch für ein Update, oder Insert ?
> >
> > Danke für Eure Hilfe im voraus
> >
> >
> > Gruss, Trawell
>
> --
> ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de **
> Informationen: http://www.phpbar.de
> http://lists.phpbar.de/mailman/listinfo/php
>
> -----
> eMail ist virenfrei.
> Von AVG überprüft - www.avg.de
> Version: 10.0.1410 / Virendatenbank: 1520/3940 - Ausgabedatum: 05.10.2011
>
> --
> ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de **
> Informationen: http://www.phpbar.de
> http://lists.phpbar.de/mailman/listinfo/php
>

php::bar PHP Wiki   -   Listenarchive