[英]How to Display Join table from another table?
我在查詢 MySQL 中的數據時遇到問題,我希望我的數據顯示如下:
ID | 姓名 | Kp | 價格 |
---|---|---|---|
KI014 | TPD | SS10 | 1000 |
SS11 | 2000 | ||
SS12 | 3000 | ||
KI015 | 自閉症譜系障礙 | SK14 | 1500 |
SK15 | 2500 |
我的查詢是這樣的:
SELECT SQL_CALC_FOUND_ROWS produkreseller.IDRESELLER as ID,
masterreseller.NAMARESELLER as Name,
produk.KodeProduk as KP,
produkreseller.hargajual as Price
FROM produkreseller
INNER JOIN produk ON produkreseller.IdProduk = produk.IDPRODUK
INNER JOIN masterreseller ON produkreseller.IDRESELLER = masterreseller.idreseller
ORDER BY masterreseller.idreseller;
該查詢的結果是:
ID | 姓名 | Kp | 價格 |
---|---|---|---|
KI014 | TPD | SS10 | 1000 |
KI014 | TPD | SS11 | 2000 |
KI014 | TPD | SS12 | 3000 |
KI015 | 自閉症譜系障礙 | SK14 | 1500 |
KI015 | 自閉症譜系障礙 | SK15 | 2500 |
基本思路是通過 IDRESELLER 對數據進行分區,檢查當前記錄是否是該分區中的第一條記錄,如果是,則在結果中包含 IDRESELLER(或 NAMARESELLER)的值,否則包含空字符串。
SELECT CASE WHEN ROW_NUMBER() OVER (PARTITION BY produkreseller.IDRESELLER) = 1
THEN produkreseller.IDRESELLER
ELSE '' END as ID,
CASE WHEN ROW_NUMBER() OVER (PARTITION BY produkreseller.IDRESELLER) = 1
THEN masterreseller.NAMARESELLER
ELSE '' END as Name,
produk.KodeProduk as KP,
produkreseller.hargajual as Price
FROM produkreseller
INNER JOIN produk ON produkreseller.IdProduk = produk.IDPRODUK
INNER JOIN masterreseller ON produkreseller.IDRESELLER = masterreseller.idreseller
ORDER BY id;
該解決方案使用 window function ROW_NUMBER() 。 有關 window 函數的更多信息,請參閱文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.