簡體   English   中英

mysql 從多個表創建視圖

[英]mysql create view from multiple tables

我想從 tabel admin、akademik、dosen 和 mahasiswa 創建視圖,在這個視圖中有 admin、password 和 id 級別列。

試過這個查詢,但結果是錯誤的。

CREATE VIEW view_user AS
    SELECT admin.id_level, admin.username, admin.password, akademik.id_level, akademik.username, 
    akademik.password, dosen.id_level, dosen.username, dosen.password, mahasiswa.id_level, 
    mahasiswa.username, mahasiswa.password
FROM admin a
    INNER JOIN akademik b on (a.id_level=b.id_level) AND (a.username=b.username) AND (a.password=b.password)
    INNER JOIN dosen c on (b.id_level=c.id_level) AND (b.username=c.username) AND (b.password=c.password)
    INNER JOIN mahasiswa d on (c.id_level=d.id_level) AND (c.username=d.username) AND (c.password=d.password)
ORDER BY 1;

我想要這樣的結果我想要這樣的結果

我怎樣才能做到這一點? 有人可以幫我嗎

由於您在 id_level、user_name 和 password(通常不建議)上執行 Inner JOIN,因此您不必顯示所有 4 個表中的這 3 列,因為您想要的輸出只有 3。

CREATE VIEW view_user AS
    SELECT admin.id_level, admin.username, admin.password
FROM admin a
    INNER JOIN akademik b on (a.id_level=b.id_level) AND (a.username=b.username) AND (a.password=b.password)
    INNER JOIN dosen c on (b.id_level=c.id_level) AND (b.username=c.username) AND (b.password=c.password)
    INNER JOIN mahasiswa d on (c.id_level=d.id_level) AND (c.username=d.username) AND (c.password=d.password)
ORDER BY 1;

此外,您可以在視圖創建中刪除順序並在查詢視圖時執行此操作,如下所示

Select * from view_user order by 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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