我有三張表:

在我的專案中,有幾門課程。用戶能夠向儀表板添加課程。我正在嘗試在儀表板中顯示這些課程。在這種情況下,我不知道如何查詢它。userclasses是一個包含用戶和用戶選擇的課程的表。
UPD:
userId是外鍵參考users.id并且classId是外鍵參考classes.id
uj5u.com熱心網友回復:
為了擴展 Roslan 的第一個示例,為了JOIN在FROM應該存在連接的子句中使用s ,需要對表進行 JOIN,以便您可以根據外鍵獲取相關資料:
SELECT uc.id, u.name, u.email, u.password, u.status,
c.name, c.short_description, c.long_description
FROM userclasses uc
INNER JOIN classes c ON uc.classId = c.id
INNER JOIN users u ON uc.userId = u.id
ORDER BY uc.id, u.name, c.name;
對于某些學術界,可能不允許使用表別名(例如uc,u和c在上面的示例中)。在這種情況下,只需指定所有表參考,其中可能存在不明確的列名(相同名稱,在組合連接的 1 個以上表中找到),例如id和name:
SELECT userclasses.id, users.name, email, password, status,
classes.name, short_description, long_description
FROM userclasses
INNER JOIN classes ON userclasses.classId = classes.id
INNER JOIN users ON userclasses.userId = users.id
ORDER BY userclasses.id, users.name, classes.name;
不過不用擔心,當我第一次開始學習 SQL 時,以及在 FROM 子句中以逗號分隔的表更為常見的時候,學習連接對我來說是一個很大的障礙。對于某些人來說,外鍵 (FK) 也是一個很難學習的概念,但是一旦人們意識到 FK 只不過是對其他表的 id 的參考,這很快就變得無關緊要了。
uj5u.com熱心網友回復:
我覺得這個方法很好:
SELECT * FROM classes INNER JOIN (users, userclasses) ON (users.id = userclasses.userId and classes.id = userclasses.classId);
uj5u.com熱心網友回復:
您可以使用連接。例如,
select uc.id, u.name, u.email, u.password, u.status,
c.name, c.short_description, c.long_description
from userclasses uc, classes c, users u
where uc.classid = c.id and uc.userid = u.id
order by uc.id, u.name, c.name;
或者:
SELECT * FROM userclasses
LEFT JOIN (classes, users)
ON (classes.id = userclasses.classId
AND users.id = userclasses.userId)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/351112.html
標籤:mysql
上一篇:Mysql動態查詢【sql注入】
