私は私の質問に関してできるだけ説明するように努めます。表によるとMYSQL結果を取得するために結合する
table A
+---------+------------+
| userid | username |
+---------+------------+
| 1 | john |
| 2 | doe |
| 3 | lewis |
+---------+------------+
table B
+---------+------------+-----------+
| id |from_userid | to_userid |
+---------+------------+-----------+
| 1 | 1 | 3 |
| 2 | 3 | 2 |
| 3 | 1 | 2 |
| 4 | 2 | 1 |
+---------+------------+-----------+
Am trying to achieve the following:
+---------+------------+----------------------+
| id |sender username| receiver username |
+---------+------------+----------------------+
| 1 | john | lewis |
| 2 | lewis | doe |
| 3 | john | doe |
| 4 | doe | john |
+---------+------------+----------------------+
あなたが見ることができるように、代わりの送信者または受信者のユーザーIDを返す、私は戻っていますユーザー名:私は、次のように見ている構造を持つ2つのテーブルからデータをフェッチするためにMYSQL/PHPを使用していますA.
このシナリオでは、左または右のジョインを使用できますか?インナーは正常に動作します合流
私はこれをテストしませんでしたが、うまくいくはずです。 'INNER JOIN'を使用していますが、いつも" from "と" to "があると仮定し、それらのレコードは常に' tableA'に存在します。 – cambraca
"from"と "to"は表Aに存在しません。表Bは、フォーム送信時に "from_useridとto_userid"の値を取得します。表Aに含まれるフィールドは、厳密にはユーザーIDとユーザー名です。ここで間違ったデータベース設計が考えられますか? – user1112155
あなたが何を求めているのかよく分かりません。このクエリはテーブルAからのユーザ名のみを取得します。 'ON'節を見ると、最初のテーブルはテーブルBからの' from_userid'フィールドが 'sender'テーブル(つまりテーブルA)の' userid'フィールドと一致していると言います。 2つ目は同様です。 DBのデザインは私にはうまく見える – cambraca