[英]Transpose dynamic rows into columns
我有兩個表:一個是programs
,另一個是bookprograms
。 programs
表是您獲得程序名稱的地方。 可以添加或編輯此表中的行。
我在下面使用了查詢,但沒有反映出是否有新程序:
SELECT MAX(IF(programs = 'cla', title, NULL)) cla,
MAX(IF(programs = 'csm', title, NULL)) csm
FROM bookprograms
GROUP BY title
第一個表的結構。
╦════════════╦═════════════╗
║ ID ║ Programs ║
╬════════════╬═════════════╣
║ 1 ║ cla ║
║ 2 ║ csm ║
╩════════════╩═════════════╝
第二張表是我存儲書籍和與其對應的程序的地方。
╦════════════╦═════════════╗
║ Title ║ Programs ║
╬════════════╬═════════════╣
║ title1 ║ cla ║
║ title2 ║ csm ║
║ title3 ║ cla ║
╩════════════╩═════════════╝
我將如何得出這個結果?
╦════════════╦═════════════╗
║ cla ║ csm ║
╬════════════╬═════════════╣
║ title1 ║ title ║
║ title3 ║ ║
╩════════════╩═════════════╝
此查詢返回所需的數據,但格式不完全符合所需格式:
SELECT programs, GROUP_CONCAT(title) AS titles
FROM bookprograms
GROUP BY programs
它返回:
programs | titles
----------+---------------
cla | title1,title3
cls | title2
在客戶端代碼中,您可以將其變形為所需的結構。 頭單元的值在現場programs
返回。 用逗號( ,
)分隔字段title
的值,您將獲得該列其余部分的數據單元格。 對結果集中的每一行重復此操作,以獲取所需表的所有列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.