0

我有一个名为“评论”的表格,其中包含用户名、评论和发表评论的组,即

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

还有一个名为“组”的表,其中包含组名称以及该组的成员。IE

Group1    Thomas
Group2    Bill
Group3    Thomas
Group3    John

所以托马斯一起是第 1 组和第 3 组的一部分,我会得到:

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

所以 ($sql) 持有 [group1] 和 [group3]。我想从“评论”中选择所有内容,其中 group = 在上述查询中找到的任何组(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 回答