MySQL-Abfrage zum Konvertieren von Zeilen mehrerer Tabellen in Spalten
P粉882357979
2023-08-13 16:02:22
<p>Ich muss Sie nach einer MySQL-Auswahlabfrage aus 3 Tabellen fragen. </p>
<p>Ich habe 3 ähnliche Tabellen: </p>
<p><strong>table_1</strong></p>
<pre class="brush:php;toolbar:false;">menu_id |
1 |. Menü 1
2 |. Menü 2</pre>
<p><strong>table_2</strong></p>
<pre class="brush:php;toolbar:false;">item_id |
1 |. 1 |. Projekt 1
2 |. 1 |. Projekt 2
3 |. 2 |. Projekt 3
4 |. 2 |. Projekt 4</pre>
<p><strong>table_3</strong></p>
<pre class="brush:php;toolbar:false;">price_id |
1 |. 1 |. EUR |
2 |. 1 |. USD |
3 |. 2 |. EUR |
4 |. 4 |. LEV |
5 |. 4 |. RON |.
<p>Ich muss die folgende Ausgabe SELECT durchführen: </p>
<pre class="brush:php;toolbar;">item_name |. p_EUR |
1 |. 1 |
2 |. 1 |
3 |. 0 |
4 |. 2 |. 0 |.
<p>Ich möchte die Spalten der Abfrage (p_EUR, p_USD usw.) mit Zeilen aus Tabelle_3 füllen. Wenn keine passenden Datensätze vorhanden sind, wird 0 oder NULL zurückgegeben.
Tabellen werden über <code>table_1.menu_id=table_2.menu_id</code> und <code>table_2.item_id=table_3.item_id</code> verknüpft. </p>
您可以使用
case when
如果您需要将null转换为0,可以使用
COALESCE
,如下所示COALESCE(MAX(CASE WHEN t3.currency_code = 'LEV' THEN t3.price END), 0) AS p_LEV