Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

2 Tabellen mit JOIN zu einer Tabelle verknüpfen

Diskussion: 2 Tabellen mit JOIN zu einer Tabelle verknüpfen im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo alle zusammen, ich arbeite im moment mit einem xt:Commerce und möchte mir alle Artikel anzeigenlassen die in ihrer ...

Antwort
Alt 04.08.08, 15:47   #1 (permalink)
 
Registriert seit: 26.03.08
moveax1 Leistung: Facit NTK
Likes: 0
2 Tabellen mit JOIN zu einer Tabelle verknüpfen

Anzeige

Hallo alle zusammen,

ich arbeite im moment mit einem xt:Commerce und möchte mir alle Artikel
anzeigenlassen die in ihrer Beschreibung den String 'Portofrei' enthalten und deren Produkt Status = 1 ist. Das Problem ist das die Beschreibung in der Tabelle products_description und der Status in der Tabell products liegt

Dazu habe ich mir folgende Abfrage geschrieben:

Code:
SQL-Befehl: Dokumentation

SELECT `products_id` , `products_name`
FROM `products_description`
LEFT JOIN `products` ON `products.products_id`
WHERE `products_description` LIKE '%Portofrei%'
AND `products_status` = '1'
LIMIT 0 , 30

MySQL meldet: Dokumentation
#1052 - Column 'products_id' in field list is ambiguous
Leider bekomm ich von der Abfrage immer einen Fehler zurückgeworfen.

Durch LEFT JOIN `products` ON `products.products_id` sollten die Tabellen doch anhand der ID zusammengefasst werden oder?

Vielen Dank im voraus
moveax1
moveax1 ist offline   Mit Zitat antworten
Alt 04.08.08, 16:33   #2 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Code:
SELECT 
    products_id,
    products_name
FROM
    products_description pd

LEFT JOIN 
    products p
ON
    p.products_id=pd.products_id

WHERE
    p.products_description  LIKE '%Portofrei%'
AND
    pd.products_status = '1'

LIMIT 0 , 30
Probiers mal so, Du musst bei einem JOIN auch anhand welcher Spalten er den JOIN durchführen soll.
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 04.08.08, 17:54   #3 (permalink)
Themenstarter
 
Registriert seit: 26.03.08
moveax1 Leistung: Facit NTK
Likes: 0
Standard

Code:
SQL-Befehl: Dokumentation

SELECT products_id, products_name
FROM products_description pd
LEFT JOIN products p ON p.products_id = pd.products_id
WHERE p.products_description LIKE '%Portofrei%'
AND pd.products_status = '1'
LIMIT 0 , 30

MySQL meldet: Dokumentation
#1052 - Column 'products_id' in field list is ambiguous
leider bekomm ich immer noch eine Fehlermeldung.
Als verständnissfrage:

per '.. LEFT JOIN products p ON p.products_id = pd.products_id ...'
lasse ich die Ergebnissmengen anhand der Produkt ID zusammenführen?
moveax1 ist offline   Mit Zitat antworten
Alt 04.08.08, 20:01   #4 (permalink)
Senior Member
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 54
Standard

Code:
SELECT 
    p.products_id,
    p.products_name
FROM
    products_description pd,
    products p
WHERE
    p.products_id = pd.products_id
AND
    p.products_description  LIKE '%Portofrei%'
AND
    pd.products_status = '1'

LIMIT 0 , 30
odigo ist offline   Mit Zitat antworten
Alt 06.08.08, 17:28   #5 (permalink)
Themenstarter
 
Registriert seit: 26.03.08
moveax1 Leistung: Facit NTK
Likes: 0
Standard

Super Danke,

musste ledeglich noch eine kleine Verbesserung machen.
Hier der Code falls noch jemand ein ähnliches Problem hat

Code:
SELECT pd.products_id, pd.products_name
FROM products_description pd, products p
WHERE p.products_id = pd.products_id
AND pd.products_description LIKE '%Portofrei%'
AND p.products_status = '1'
LIMIT 0 , 30
Vielen Dank
moveax1 ist offline   Mit Zitat antworten
Alt 06.08.08, 22:53   #6 (permalink)
 
Registriert seit: 17.01.06
Oi!Alex Leistung: 8086
Likes: 7
Standard

Code:
SELECT pd.products_id, pd.products_name
FROM products AS p

JOIN products_description AS pd
ON p.products_id = pd.products_id

WHERE pd.products_description LIKE '%Portofrei%'
AND p.products_status = '1'
Finde das verknüpfen in der WHERE Klausel unübersichtlich vorallendingen wenn man mal mehr als 2 Tabellen verknüpft.

@moveax1 & BasicAvid ein "LEFT JOIN" an dieser stelle ist verkeht da Daten aus beiden Tabellen benötigt werden, natürlich würde es in diesem fall trotzdem funktionieren aber LEFT JOIN ist sehr langsam im gegensatz zu JOIN.


Damit es Perfekt ist noch was zur Fehlermeldung
Code:
#1052 - Column 'products_id' in field list is ambiguous
Heißt soviel das products_id in beiden Tabellen ist und beim SELECT nicht klar differenziert ist, aus welcher Tabelle er es SELECTen soll.
Oi!Alex ist gerade online   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » 2 Tabellen mit JOIN zu einer Tabelle verknüpfen
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Weiterverarbeitung von e-mails in z.B. einer Tabelle sys64738 Die Problemzone 1 20.09.09 22:00
Problem mit Formularen in einer Tabelle odigo (Web-) Design und webbasierte Sprachen 3 15.07.07 16:26
[SOLVED] Div-Box oben in einer Tabelle platzieren $oul (Web-) Design und webbasierte Sprachen 7 22.02.07 16:34
Anzahl der Einträge in einer Tabelle ausgeben reaLInsanity (Web-) Design und webbasierte Sprachen 6 30.11.06 23:45


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61