suchen
Fragen und Antworten MySQL-Abfrage zum Konvertieren von Zeilen mehrerer Tabellen in Spalten

0
<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>
Your Answer
einreichen

1 antwortet
0

您可以使用case when

SELECT
t2.item_id,
t2.item_name,
t2.menu_id,
t1.menu_name,
 MAX(CASE WHEN t3.currency_code = 'EUR' THEN t3.price END) AS p_EUR,
 MAX(CASE WHEN t3.currency_code = 'USD' THEN t3.price END) AS p_USD,
 MAX(CASE WHEN t3.currency_code = 'GBP' THEN t3.price END) AS p_GBP,
 MAX(CASE WHEN t3.currency_code = 'RON' THEN t3.price END) AS p_RON,
 MAX(CASE WHEN t3.currency_code = 'LEV' THEN t3.price END) AS p_LEV
FROM table_2 AS t2
JOIN table_1 AS t1 ON t2.menu_id = t1.menu_id
LEFT JOIN table_3 AS t3 ON t2.item_id = t3.item_id
GROUP BY t2.item_id, t2.item_name, t2.menu_id, t1.menu_name;

如果您需要将null转换为0,可以使用COALESCE,如下所示 COALESCE(MAX(CASE WHEN t3.currency_code = 'LEV' THEN t3.price END), 0) AS p_LEV

2023-08-14 10:06:04

einreichen

Hot Tools

Sammlung der Laufzeitbibliothek vc9-vc14 (32+64 Bit) (Link unten)

Sammlung der Laufzeitbibliothek vc9-vc14 (32+64 Bit) (Link unten)

Laden Sie die Sammlung der Laufzeitbibliotheken herunter, die für die Installation von phpStudy erforderlich sind

VC9 32-Bit

VC9 32-Bit

VC9 32-Bit-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy

Vollversion der PHP-Programmierer-Toolbox

Vollversion der PHP-Programmierer-Toolbox

Programmer Toolbox v1.0 PHP Integrierte Umgebung

VC11 32-Bit

VC11 32-Bit

VC11 32-Bit-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen