私は奇妙な状況で立ち往生しています。こんなふうになります:
私は2つのテーブルを持っています。1 つは users と呼ばれ、すべてのユーザー/パスワードの詳細が含まれています。次に、userFiles と呼ばれる別のテーブルがあり、ユーザー ID と、彼が権限を持つファイルの fileID があります。
ここで、1 つのアカウントが複数のファイルに対する権限を持つことができ、複数のアカウントが 1 つのファイルに対する権限を持つことができることに注意してください。
したがって、基本的に、最初のテーブルには次のようなものがあります。
- ID: 1、名前: bob、パスワード: helloWorld
- ID: 2、名前: phil、パスワード: what'sUp?
表 2 では、次のように言います。
- uID: 1、fID: 67
- uID: 1、fID: 68
- uID: 1、fID: 36
- uID: 2、fID: 67
- uID: 2、fID: 68
- uID: 2、fID: 102
さて、ここで私がやりたいことは次のとおりです。
すべてのユーザーを選択したい! (この場合は両方!) また、他のテーブルを結合したいのですが、特定の fID を指定した行だけを結合したいのです!
たとえば、fID 67 でユーザーとユーザー権限を照会したい
私はこれを取得したい:
- ID: 1、名前: ボブ、パスワード: helloWorld、uID: 1、fID: 67
- ID: 2、名前: phil、パスワード: what'sUp?、uID: 2、fID: 67
そして、fID 102 の場合 (PHP コードで使用できる NULL 以外の値を指定しても問題ありません)
- ID: 1、名前: bob、パスワード: helloWorld、uID: NULL、fID: NULL
- ID: 2、名前: phil、パスワード: what'sUp?、uID: 2、fID: 102
これは私が使ってみたクエリです
SELECT * FROM users LEFT JOIN userFiles ON users.ID=userFiles.uID WHERE userFiles.fID = 102
ただし、このクエリは 1 つの行のみを返しますが、両方は必要ありません。
mySQL ソリューションを提供できない場合は、結果をフィルター処理して、PHP を使用して必要なもののようなものを取得できるように、私を助けてください...
ありがとうございます!