2016-11-25 4 views
0

Ich schreibe diese Frage, während es irgendwo eine Antwort geben kann, ich habe Probleme mit meiner Terminologie. Meine anfängliche Abfrage unten ergreift die richtige Anzahl von Ergebnissen, die ich brauche.MySQL - Tabellen beitreten und hinzufügen, wenn ein bestimmter Wert existiert

SELECT * FROM wp_posts 
WHERE post_type = 'video' 
AND post_status = 'publish' 
ORDER BY 'post_date' 

Mein Problem ist, dass ich einen benutzerdefinierten Feldwert in einer anderen Tabelle haben, die auf einige der Beiträge, aber nicht alle von ihnen existiert. Wenn der Feldwert vorhanden ist, möchte ich, dass die Informationen in einer anderen Spalte angezeigt werden. Wenn ich ein normales JOIN mache, bekomme ich zu viele Ergebnisse, weil ich nicht sicher bin, wie man "ob der Wert existiert" abfragt.

Grundsätzlich möchte ich so etwas wie

SELECT * FROM wp_posts 
WHERE post_type = 'video' 
AND post_status = 'publish' 
ORDER BY 'post_date' 

Dann aus der Tabelle zwei tun, die wp_postmeta UND WENN meta_key = ‚Quelle‘ VON wp_postmeta

** fügen Sie dann zwei weitere Spalten aus der aufgerufen wird, 2. Tabelle **

Mein größtes Problem ist, dass die Meta_key-Spalte in meiner 2. Tabelle viele Werte hat, die an die gleiche ID gebunden sind. Wenn ich also einen normalen einfachen JOIN mache, komme ich mit zu vielen Zeilen zurück.

Es tut mir leid, wenn ich das nicht klarer beschreiben kann, aber wenn jemand weiß, was ich zu erreichen versuche, würde jede Hilfe geschätzt werden.

+0

Ich habe herausgefunden, dass ich einen LINKEN JOIN hinzufügen muss, um das zu erreichen, was ich wollte. Danke und Entschuldigung, dass du deine Zeit in Anspruch genommen hast. – kaykills

Antwort

0

Ich habe herausgefunden, dass ich einen LINKEN JOIN hinzufügen muss, um das zu erreichen, was ich wollte. Vielen Dank und Entschuldigung, dass Sie Ihre Zeit in Anspruch genommen haben.

SELECT * 
FROM wp_posts A 
LEFT JOIN wp_postmeta B 
ON A.ID = B.post_id 
AND B.meta_key = 'sources' 
WHERE A.post_type = 'video' 
AND A.post_status = 'publish'