0

ユーザー名、コメント、およびコメントが作成されたグループを含む「コメント」というテーブルがあります。

Thomas    "Hello"              Group1
John      "A Comment"          Group1
Bill      "Another Comment"    Group2
Thomas    "etc"                Group3

そして、グループ名とそのグループのメンバーを含む「Groups」というテーブル。すなわち

Group1    Thomas
Group2    Bill
Group3    Thomas
Group3    John

したがって、トーマスはすべてグループ 1 と 3 の一部です。

$sql = mysql_query("SELECT * FROM Groups WHERE username = $username");

そのため、($sql) は [group1] と [group3] を保持します。グループ = 上記のクエリ (1 または 3) で見つかったグループのいずれかである「コメント」からすべてを選択したい。

したがって、次のようになります。

SELECT * FROM Comments WHERE group = (SELECT group FROM Groups WHERE username = $username);

しかし、私はあなたがそれを行うことができないと確信しています:PIはUNIONとJOINを調べましたが、それらは私が探しているものではないと思いますか?

それが理にかなっていることを願っています。助けてくれてありがとう。

4

2 に答える 2

0

IN()の代わりに使用=

SELECT * FROM Comments 
WHERE `group` IN (SELECT `group` FROM Groups WHERE username = '$username')
于 2013-11-11T08:49:02.890 に答える
0

結合を使用できます

SELECT c.* FROM Comments c 
JOIN  Groups g  ON (c.username = g.username )
WHERE g.username = '$username'
于 2013-11-11T08:51:58.290 に答える