Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

SQL Über zwei Tabellen, wobei die eine nicht gefüllt ist

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
pvdb
PostRank 5
PostRank 5
Beiträge: 321
Registriert: 16.01.2005, 22:37
Wohnort: Hannover

Beitrag von pvdb » 21.05.2008, 01:20

Hi,

sagen wir ich habe die Tabelle warhouse:

warhouse_id
warhouse_name

und die Tabelle product_to_warhouse:

product_id
quantity
warhouse_id


In meinem Script will ich nun alle Lagerplätze anzeigen:

select * from warhouse

Nun Frage ich mich, ob ich in einem SQL auch mit anzeigen kann, ob der Lagerplatz belegt ist

select * from warhouse w, product_to_warhouse p2w where w.warhouse_id = p2w.warhouse_id

würde ja nicht gehen, weil er dann nur Lagerplätze anzeigen würde, die gefüllt sind, aber nicht die Leeren.

Ist das irgendwie mit einem Join möglich abzufragen? Wenn ja interessiere ich mich für ein Beispiel ;)

Phil

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Zerstreuter
PostRank 6
PostRank 6
Beiträge: 400
Registriert: 04.07.2005, 12:12
Wohnort: Schwalmstadt

Beitrag von Zerstreuter » 21.05.2008, 01:28

SELECT * FROM warhouse AS w
LEFT JOIN product_to_warhouse AS p2w USING (warhouse_id)

gelegenheitsbot
PostRank 7
PostRank 7
Beiträge: 601
Registriert: 16.11.2007, 00:30

Beitrag von gelegenheitsbot » 21.05.2008, 01:30

join ist nur ne hierarische verknüpfungs-optimierungs-funktion (hinsichtlich Indizees).......

Mit SQL ist prinzipiell inzwischen alles möglich!

Leider zeigst du hier keine logischen zusammenhänge, so dass dir hier auch keiner ne Lösung geben kann. Schick mir mal ne pm - ich kann dir da auf jeden Fall helfen! Aber deine Logik-Verknüpfungen, Standardwerte und Struktur sind hier nicht eindeutig erkennbar.
Meinen Kritikern empfehle ich:
https://de.youtube.com/watch?v=ZfCLfbQJATI

Southmedia
PostRank 10
PostRank 10
Beiträge: 7322
Registriert: 20.07.2003, 19:56

Beitrag von Southmedia » 21.05.2008, 11:01

gelegenheitsbot, ist doch alles vorhanden was man braucht:
1. Wir haben ne Tabelle in der die Lagerplätze stehen,
2. eine Beziehungstabelle die angibt in welchem Lagerplatz wieviele Einheiten von einem Produkt lagern,
3. und (nicht angegeben, aber offensichtlich) eine Tabelle mit Produkten.

Also gehen wir, wie Zerstreuter korrekt gesagt hat, hin und holen uns alle Lagerplätze, joinen das ganze mit der Beziehungstabelle um zu sehen wo Produkte liegen und wo nicht. Bei Lagerplätzen (warehouse_id) die nicht belegt sind ist product_id dann NULL, wonach ja auch gefiltert werden kann (WHERE product_id IS NULL, wenn nur leere Lagerplätze angezeigt werden sollen oder WHERE product_id IS NOT NULL, wenn nur belegte Lagerplätze angezeigt werden sollen) .

Zusätzlich würde ich, wenn die Information _welche_ Produkte jeweils eingelagert sind nicht so wichtig ist, noch nach der warehouse_id gruppieren, damit Lagerplätze in denen 1000 Produkte lagern (Davon gehe ich mal aus dass das möglich ist, sonst wäre das DB-Schema leicht 'falsch'...) nicht 1000-fach angezeigt werden, sondern nur einmal auftauchen. Dadurch verliert product_id natürlich einen Teil seiner Aussagekraft, aber das wird ja in Kauf genommen da nicht notwendige Information.

- Jan

pvdb
PostRank 5
PostRank 5
Beiträge: 321
Registriert: 16.01.2005, 22:37
Wohnort: Hannover

Beitrag von pvdb » 22.05.2008, 11:44

So,

vielen Dank für die Antworten, ein LEFT JOIN, war genau das was ich gesucht habe. Damit funktioniert es nun auch.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag