簡體   English   中英

如何顯示來自另一個表的連接表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM