INNER JOIN クエリと WHERE 条件を組み合わせて、特定の users.id の「ロール」のセットを取得しようとしています。しかし、何か問題が発生しました。
私のデータベースには 4 つのテーブルがあります:
私の質問:
しかし、このクエリはデータを返しませんでした。 (phpmyadmin SQL ボードでテスト済み。)
Akina がコメントセクションですでに述べたように、テーブル「role」には「libelle」値はなく、上で述べたように「Système」と同等です。そのため、出力が得られません。 MySQL データベースの「System」に修正して、再試行してください。
###使用:###
SELECT u.id AS ID、 r.libelle AS ロール、 t.リベルASタイプ ユーザーからのあなた JOIN アクション a ON a.id_user = u.id JOIN type_role t ON t.id = a.id_type_role JOIN ロール r ON r.id = a.id_role WHERE a.id_user =1 かつ t.libelle = 'システム';
一个> 整数を一重引用符で囲まず、
を WHERE a.id_user = 1 に変更します。
WHERE a.id_user = 1
は、role テーブルではなく、type_role テーブルにあります。
role
ではなく、
テーブルにあります。
Akina がコメントセクションですでに述べたように、テーブル「role」には「libelle」値はなく、上で述べたように「Système」と同等です。そのため、出力が得られません。 MySQL データベースの「System」に修正して、再試行してください。
###使用:###
SELECT u.id AS ID、 r.libelle AS ロール、 t.リベルASタイプ ユーザーからのあなた JOIN アクション a ON a.id_user = u.id JOIN type_role t ON t.id = a.id_type_role JOIN ロール r ON r.id = a.id_role WHERE a.id_user =1 かつ t.libelle = 'システム';
https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=20570938deb2bec281d5070dd28bf19d一个> 整数を一重引用符で囲まず、
WHERE a.id_user ='1'を
libelle = 'system'WHERE a.id_user = 1
に変更します。は、
role
テーブルではなく、
type_roleテーブルにあります。