ホームページ  >  記事  >  バックエンド開発  >  MSQL データベースの複数テーブル クエリに関連する問題

MSQL データベースの複数テーブル クエリに関連する問題

WBOY
WBOYオリジナル
2016-06-13 13:31:31894ブラウズ

MSQLデータベース
の複数テーブルクエリの問題は次のようになります。権限管理を行ってモジュールに分割する必要がありますが、これには長い間データベースにクエリステートメントを書いてきました。時間はありますが、クエリ文を書いていません。助けてください。
================================= ================ ================================= ================ ==============
現在 5 つのテーブルがあります。
user table sub(id, name, pass, role_id) role_id はロール ID
ロールテーブル role_table(role_id ,name)
モジュールテーブル module(md_id,md_name)md_id はモジュール名
関数テーブル auy(auy_id,md_id,auy_name,auy_url) )auy_id は関数 ID、auy_url は関数パス
ロール関数関連付けテーブル role_auy (role_id,auy_id)
====================== ====================== =========================== ====================== =====================
もうわかったロール ID を使用して、対応する関数を見つけて、対応するモジュールを表示できます。関数をクエリしたら、すべてを直接配置しましたが、マネージャーは、対応する関数の下に関数を配置するように求めました。モジュール。もう巻き込まれないように、クエリの方法を教えていただければ幸いです。皆さん、ありがとうございます

-----解決策-------- ------------
結果も載せませんので、以下を試してください。

SQL コード
select a.role_id,a.auy_id,a.auy_name,m.md_name from role_auy as ra left join auy as a on a.auy_id=ra.auy_id inner left join module as m on m.md_id=a.md_id ここで、ra。役割ID=1;
<br><font color="#e78608">------解決策---------</font><br><br><br>
SQL コード

SELECT * FROM role_auy AS ra LEFT JOIN auy AS a ON ra.auy_id = a.auy_id LEFT JOIN module AS m ON a.md_id = m.md_id WHERE ra.role_id = 'ロールID'

それでもユーザー テーブルを関連付ける必要がある場合は、WHERE の前に LEFT JOIN sub AS s ON ra.role_id = s.role_id を追加します。
<br><font color="#e78608">------解決策------------------</font><br>
関数は対応するモジュールの下に配置されます。これは、モジュール ID が既知および固定 <br> であり、ロール ID が既知である <br> ことを意味します。その場合、既存の接続を取得するため、接続には内部接続またはカンマ接続を使用する必要があります。関数 <br><br>
SQL コード
select* from role_auy、auy
 ここで、 role_auy.auy_id=auy.auy_id
  および role_auy.role_id=ロール ID
  および auy.md_id=モジュール ID <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。