在 MySQL 中,如何透過連線維護資料驅動的表關係?
事實上,有時我們可以避免表中資料驅動的關係,需要將它們連線起來。藉助 SELECT 列表中的 CASE 語句可以實現此目的,以處理連線可能性。為了理解這一點,我們舉一個三個資料驅動的表的示例,它們分別是具有以下資料的“Student_Detail”——
mysql> Select * from student_detail; +----+---------+ | Id | Name | +----+---------+ | 1 | Harshit | | 2 | Rahul | | 3 | Aarav | +----+---------+ 3 rows in set (0.00 sec)
現在,我們有三個表,分別是“Student_Harshit”、“Student_Rahul”、“Student_Aarav”,它們分別對學生 Harshit、Rahul 和 Aarav 具有說明。它們具有以下資料——
mysql> Select * from Student_Harshit; +----+-----------+ | Id | Remarks | +----+-----------+ | 1 | Excellent | +----+-----------+ 1 row in set (0.00 sec) mysql> Select * from Student_Rahul; +----+---------+ | Id | Remarks | +----+---------+ | 2 | Average | +----+---------+ 1 row in set (0.00 sec) mysql> Select * from Student_Aarav; +----+-------------+ | Id | Remarks | +----+-------------+ | 3 | Intelligent | +----+-------------+ 1 row in set (0.00 sec)
現在,以下查詢將處理這些資料驅動的表——
mysql> Select sd.id, sd.name, CASE name WHEN 'Harshit' THEN H1.Remarks WHEN 'Rahul' THEN R1.Remarks WHEN 'Aarav' THEN A1.Remarks ELSE 'Error' END as REMARKS FROM Student_detail AS sd LEFT JOIN Student_Harshit AS H1 ON sd.id = H1.id LEFT JOIN Student_Rahul AS R1 ON sd.id = R1.id LEFT JOIN Student_Aarav AS A1 on sd.id = A1.id; +----+---------+-------------+ | id | name | REMARKS | +----+---------+-------------+ | 1 | Harshit | Excellent | | 2 | Rahul | Average | | 3 | Aarav | Intelligent | +----+---------+-------------+ 3 rows in set (0.00 sec)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP