MySQL Forums
Forum List  »  German

Werte aus verschiedenen Tabellen zusammenführen
Posted by: Matthias Ulrich
Date: April 05, 2018 03:17AM

Hallo

Ich bin in Sachen Datenbanken ein totaler Neuling.
Ich hoffe, Ihr seid daher etwas nachsichtig mit mir,
wenn ich die Frage bzw. das Problem falsch angehe.


Ich habe eine Tabelle mit dem Namen _posts und dort eine Spalte ID,
eine Tabelle _postmeta mit den Spalten post_id und meta_key = _regular_price,
in der selben Tabelle _postmeta auch eine Spalte meta_key = _min_price
und schliesslich in der selben Tabelle _postmeta auch eine Spalte meta_key = _max_price


Hier eine etwas übersichtlichere Darstellung,
jeweils mit einem Beispiel-Datensatz:

========================================================================

_posts ID = 41 und post_type = product
_postmeta post_id = 41 und meta_key = _regular_price und meta_value = 90.00
_postmeta post_id = 41 und meta_key = _min_price und meta_value = 80.00
_postmeta post_id = 41 und meta_key = _max_price und meta_value = 91.00

========================================================================

Wie frage ich die Datenbank ab,
so dass ich die verschiedenen Tabellen zusammenführen kann
(ID bzw. post_id ist pro zusammengehöriger Datensatz identisch)?


Mit der folgenden Abfrage:

========================================================================

$results = $wpdb->get_results( "

SELECT $postmeta.*
FROM $postmeta INNER JOIN $posts ON $postmeta.post_id = $posts.ID
WHERE $posts.post_type LIKE '%product%'
AND $postmeta.meta_key LIKE '%_regular_price%'
")

========================================================================

und dieser Schleife:

========================================================================

foreach($results as $result){
$meta_id = $result->meta_id;
$post_id = $result->post_id;
$meta_key = $result->meta_key;
$meta_value = number_format( $result->meta_value, 2 );

echo "<div>meta_id: $meta_id</div>";
echo "<div>post_id: $post_id</div>";
echo "<div>meta_key: $meta_key</div>";
echo "<div>meta_value: $meta_value</div>";
}


========================================================================

erhalte ich folgende Ausgabe:

========================================================================

meta_id: 463
post_id: 41
meta_key: _regular_price
meta_value: 200.00

========================================================================

ich möchte gerne erhalten:

========================================================================
meta_id: 463
post_id: 41
meta_key: _regular_price
meta_value: 90.00
min_price: 80.00
max_price: 91.00

========================================================================

Ich bin sehr dankbar, wenn mir jemand auch nur einen Tipp in eine sinnvolle Richtung geben kann.

Ganz herzlichen Dank

Matthias

Options: ReplyQuote


Subject
Views
Written By
Posted
Werte aus verschiedenen Tabellen zusammenführen
960
April 05, 2018 03:17AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.