mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 14:44 Benutzername: Passwort: Auto-Login

Thema: SQL-Problem vom 09.06.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> SQL-Problem
Autor Nachricht
Achim M.
Threadersteller

Dabei seit: 17.03.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 09.06.2008 15:31
Titel

SQL-Problem

Antworten mit Zitat Zum Seitenanfang

Ich habe eine MySQL-Tabelle mit einer etwas ungünstigen Struktur (an der ich nichts ändern kann).

Alle Produkte, die zu einer Verpackungseinheit gehören, haben eine gemeinsame Zahl im Feld "feld1". Nun sollen alle Produkte herausgesucht werden, die zu einer Verpackungseinheit gehören, bei der bei einem Produkt dieser Verpackungseinheit ein "J" im "feld2" vorhanden ist.

Hier der Aufbau, um die Problematik besser zu verstehen:

Code:
id   feld1    feld2    feld3
--------------------------------
 1    234        J     produkt1
 2    234              produkt2
 3    234              produkt3
 4    567              produkt4
 5    567              produkt5
 6    666        J     produkt6
 7    666              produkt7
 8    789              produkt8
 9    789              produkt9
10    789              produkt10
11    789              produkt11

Die Suchabfrage sollte also als Ergebnis 'produkt1','produkt2','produkt3' (Verpackungseinheit ' 234') und 'produkt6','produkt7' (Verpackungseinheit ' 666') haben.

Im Augenblick löse ich das mit einer Schleife in PHP. Ich denke aber, das es auch eine intelligentere Lösung mittels SQL-Abfrage geben müsste. Jemand eine Idee?

Gruß

Achim
  View user's profile Private Nachricht senden
pRiMUS

Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht: Männlich
Verfasst Mo 09.06.2008 16:04
Titel

Antworten mit Zitat Zum Seitenanfang

verstehe grad das problem nicht so recht, aber würde dir GROUP BY nicht schon helfen?

Code:

select id, feld1, feld2, feld3 from tabelle where feld2 = "J" group by feld1
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 09.06.2008 16:05
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
SELECT id FROM tabelle WHERE feld1='$feld1', feld1='$feld1x', feld2='J'


Oder nicht?

//edit: primus: ne, dabei sind doch nicht nur die 243 und 667 (o.ä.) ausgewählt?


Zuletzt bearbeitet von Smooth-Graphics am Mo 09.06.2008 16:05, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Mo 09.06.2008 16:37
Titel

Antworten mit Zitat Zum Seitenanfang

Code:

 SELECT t1.id,t1.feld1,t1.feld2,t1.feld3
FROM tabelle as t1
LEFT JOIN tabelle as t2
on t2.feld2 = "J"
where t1.feld1 = t2.feld1;
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 09.06.2008 16:48
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
SELECT a.feld3
FROM tabelle as a
INNER JOIN tabelle as b
ON b.feld1 = a.feld1
WHERE b.feld2 = 'j'


ungetestet.


Edit: Ho, zehn Mintuen, ich war abgelenkt.. *ha ha* e2: Nein, Gerüstbauer vorm Fenster.


Zuletzt bearbeitet von m am Mo 09.06.2008 16:55, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Mo 09.06.2008 16:53
Titel

Antworten mit Zitat Zum Seitenanfang

m hat geschrieben:

Edit: Ho, zehn Mintuen, ich war abgelenkt.. *ha ha*


du wirst alt mein bester... wieder bälle geguckt, wa?? *ha ha*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Achim M.
Threadersteller

Dabei seit: 17.03.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 09.06.2008 17:05
Titel

Antworten mit Zitat Zum Seitenanfang

pixelpapst303 hat geschrieben:
Code:

 SELECT t1.id,t1.feld1,t1.feld2,t1.feld3
FROM tabelle as t1
LEFT JOIN tabelle as t2
on t2.feld2 = "J"
where t1.feld1 = t2.feld1;

Hab's gerade getestet: Es funktioniert, genau wie gewünscht. Vielen Dank! Auch den anderen Helfern natürlich.

Gruß

Achim
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Mo 09.06.2008 17:15
Titel

Antworten mit Zitat Zum Seitenanfang

m hat geschrieben:
e2: Nein, Gerüstbauer vorm Fenster.


schubs die sch**ß konkurrenz da runna!!! los schubs sie! *ha ha*


um ot zu vermeiden:
@achim:
freut mich Grins
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen Formmailer-Problem-neues problem
PS Problem
Problem mit div
IE PNG FIX Problem
CSS - Problem mit IE
css-problem
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.