我不知道爲什麼你的標籤樂的設計是這樣的,無論如何,如果你只是想這樣的結果,你可以試試下面的SQL語句,可能會幫助你;)
SQL Fiddle
的MySQL 5.6架構設置:
CREATE TABLE Subject
(`id` varchar(2), `markid` varchar(7), `name` varchar(8))
;
INSERT INTO Subject
(`id`, `markid`, `name`)
VALUES
('1', '1', 'subject1'),
('2', '2', 'subject2'),
('3', '3', 'subject3'),
('4', '4', 'subject4')
;
CREATE TABLE Mark
(`id` varchar(2), `Mark1` varchar(5), `mark2` varchar(5), `Mark3` varchar(5), `mark4` varchar(6))
;
INSERT INTO Mark
(`id`, `Mark1`, `mark2`, `Mark3`, `mark4`)
VALUES
('1', '96', '95', '96', '98')
;
查詢1:
SELECT
CASE markid WHEN 1 THEN Mark1
WHEN 2 THEN Mark2
WHEN 3 THEN Mark3
WHEN 4 THEN Mark4 END AS Mark,
name AS subject
FROM Subject
LEFT JOIN Mark ON Mark.id = 1
:
| Mark | name |
|------|----------|
| 96 | subject1 |
| 95 | subject2 |
| 96 | subject3 |
| 98 | subject4 |
規範化的標記表 – Strawberry
我怎樣才能做到這一點? –
我創建了一個答案,顯示如何規範化。但我不得不問,你是否有必要在單獨的桌子上留下印記。爲什麼不把標記放在與主題相同的表格中? –