dedlfix: MYSQL Wordpress Meta Daten Analyse

Beitrag lesen

Tach!

Jetzt könnte man einfach zwei MYSQL Abfragen hintereinander setzten:

SELECT *  FROM `wp_postmeta` WHERE `meta_key` LIKE '_kksr_avg' AND `meta_value` = '5.00'
SELECT *  FROM `wp_postmeta` WHERE `meta_key` LIKE '_kksr_casts' AND `meta_value` >= '2'

beides in ein Arry setzen und dann vergleichen. Unschön Join ist auch eher für zwei verschiedene Tabellen gedacht, und Group by!?!?

Wie würdet Ihr das Problem lösen?

Dein eigentliches Ziel sind doch sicher nicht die Metadaten sondern die Artikel. Wenn ja, würde ich von der Tabelle wp_posts ausgehen und dazu die Bedingungen formulieren. Joins sind auch eher unschön, weil sie ein kartesiches Produkt (zumindest als Zwischenschritt) erzeugen, was hier aber nicht das Ziel ist. Deshalb plädiere ich für EXISTS-Subquerys.

SELECT ... FROM wp_posts p 
WHERE 
  EXISTS(SELECT * FROM wp_postmeta WHERE post_id = p.ID AND ...) AND 
  EXISTS(SELECT * FROM wp_postmeta WHERE post_id = p.ID AND ...)

Ich finde auch, die Abfrage so gestellt, zeigt gleich, was man eigentlich möchte. Ein Join hingegen ist eigentlich ein Umweg aus technischen Gründen.

Wenn du allerdings die Daten von wp_postmeta in der Ergebnismenge brauchst, müsste wohl doch ein Join her.

dedlfix.