ホームページ  >  に質問  >  本文

MySQL SELECT INNER JOIN の間違った使用法

INNER JOIN クエリと WHERE 条件を組み合わせて、特定の users.id の「ロール」のセットを取得しようとしています。しかし、何か問題が発生しました。

私のデータベースには 4 つのテーブルがあります:

リーリー

私の質問:

リーリー

しかし、このクエリはデータを返しませんでした。 (phpmyadmin SQL ボードでテスト済み。)

P粉022285768P粉022285768236日前405

全員に返信(2)返信します

  • P粉055726146

    P粉0557261462024-02-26 15:50:19

    Akina がコメントセクションですでに述べたように、テーブル「role」には「libelle」値はなく、上で述べたように「Système」と同等です。そのため、出力が得られません。 MySQL データベースの「System」に修正して、再試行してください。

    返事
    0
  • P粉691958181

    P粉6919581812024-02-26 13:57:22

    ###使用:###

    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'

    WHERE a.id_user = 1 に変更します。

    libelle = 'system'

    は、role テーブルではなく、type_role テーブルにあります。

    返事
    0
  • キャンセル返事