<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
1 antwortet
您可以使用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
Hot-Tools-Tags
Hot Questions
function_exists() kann die benutzerdefinierte Funktion nicht ermitteln
2024-04-29 11:01:01
So zeigen Sie die mobile Version von Google Chrome an
2024-04-23 00:22:19
Das untergeordnete Fenster bedient das übergeordnete Fenster, aber die Ausgabe antwortet nicht.
2024-04-19 15:37:47
Im übergeordneten Fenster erfolgt keine Ausgabe
2024-04-18 23:52:34
Wo gibt es die Kursunterlagen zum CSS-Mindmapping?
2024-04-16 10:10:18
Hot Tools
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-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy
Vollversion der PHP-Programmierer-Toolbox
Programmer Toolbox v1.0 PHP Integrierte Umgebung
VC11 32-Bit
VC11 32-Bit-Laufzeitbibliothek für die integrierte Installationsumgebung von phpstudy
SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen
Heißer Artikel
Prognose der zehn wichtigsten Trends auf dem Kryptowährungsmarkt im Jahr 2025: Wo ist der nächste Trend?
2025-11-07
By DDD
Wie erkennt man die einheimischen Hundeprojekte im Währungskreis? Vermeiden Sie die Fallen und Risikowarnungen von Zerocoin
2025-11-07
By DDD
Tutorial zur Lösung von CSS @media-Abfrageprioritäts- und Regelabdeckungsproblemen
2025-11-07
By DDD





