Pertanyaan MySQL untuk menukar baris berbilang jadual kepada lajur
P粉882357979
2023-08-13 16:02:22
<p>Saya perlu bertanya kepada anda tentang pertanyaan pilih MySQL daripada 3 jadual. </p>
<p>Saya mempunyai 3 jadual yang serupa: </p>
<p><strong>table_1</strong></p>
<pre class="brush:php;toolbar:false;">menu_id |
1 |
2 |. Menu 2</pre>
<p><strong>table_2</strong></p>
<pre class="brush:php;toolbar:false;">item_id |
1 |. 1 |
2 |. 1 |
3 |. 2 |
4 |. 2 |.
<p><strong>table_3</strong></p>
<pre class="brush:php;toolbar:false;">harga_id_barang |
1 |. 1 |
2 |. 1 |
3 |. 2 |
4 |. 4 |
5 |. 4 |. 9.60<
<p>Saya perlu melaksanakan output berikut SELECT:</p>
<pre class="brush:php;toolbar:false;">item_id |
1 |. menu 1 |
2 |. menu 1 |
3 |. menu 2 |
4 |. 2 |.
<p>Saya ingin mengisi lajur pertanyaan (p_EUR, p_USD, dsb.) dengan baris daripada table_3. Jika tiada rekod yang sepadan, 0 atau NULL dikembalikan.
Jadual digabungkan melalui <code>table_1.menu_id=table_2.menu_id</code> dan <code>table_2.item_id=table_3.item_id</code>. </p>
Boleh guna
case when
Jika anda perlu menukar null kepada 0, anda boleh menggunakan
COALESCE
seperti yang ditunjukkan di bawahCOALESCE(MAX(CASE WHEN t3.currency_code = 'LEV' THEN t3.price END), 0) AS p_LEV