phpbar.de logo

Mailinglisten-Archive

[php] Abfrage über Zwischentabelle

[php] Abfrage über Zwischentabelle

Robert Hartung r.hartung at roberthartung.de
Do Okt 6 10:59:08 CEST 2011


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 


php::bar PHP Wiki   -   Listenarchive