Saya cuba mendapatkan semula set "peranan" untuk pengguna tertentu.id menggunakan pertanyaan menggunakan INNER JOIN digabungkan dengan keadaan WHERE. Tetapi ada sesuatu yang tidak kena.
Pangkalan data saya mempunyai empat jadual:
t_users : id, username, userpass, status, ... t_action: id, id_user, id_role, id_type_role, ... t_role: id, libelle, status t_type_role: id, libelle, status
Pertanyaan saya:
SELECT U.id AS ID, R.libelle AS ROLE, T.libelle AS TYPE FROM t_user U JOIN t_action A ON A.id_user = U.id JOIN t_type_role T ON T.id = A.id_type_role JOIN t_role R ON R.id = A.id_role WHERE A.id_user = '1' AND R.libelle = 'System'
Tetapi pertanyaan ini tidak mengembalikan data. (Diuji pada papan SQL phpmyadmin.)
Seperti yang telah Akina sebutkan di bahagian komen, tiada nilai "libelle" dalam jadual "peranan", ia sama dengan "Système", seperti yang anda nyatakan di atas. Itulah sebabnya anda tidak mendapat sebarang output. Betulkannya kepada "Sistem" dalam pangkalan data MySQL dan cuba lagi.
Penggunaan:
https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=20570938deb2bec281d5070dd28bf19d 一个>
Jangan letakkan petikan tunggal di sekitar integer, gantikan
WHERE a.id_user ='1'
更改为WHERE a.id_user = 1
.libelle = '系统'
在type_role
表中,不在role
dalam meja