感谢您的出色答案!在MySQL中使用子查询进行选择(使用ANY和IN进行子查询)
更多信息
这是很难解释的,所以让舞台布景......
userActions userGroupMap
+------+--------+ +------+-------+
| user | action | | user | group |
+------+--------+ +------+-------+
| x | acted! | | x | a |
| y | acted! | | y | a |
| y | acted! | | z | b |
| z | acted! | +------+-------+
| y | acted! |
| z | acted! |
| x | acted! |
| z | acted! |
+------+--------+
我想选择组a的动作。我的想法是
SELECT actions, user FROM userActions
WHERE user = (SELECT user, group FROM userGroupMap WHERE group = a)
但显然这个子查询返回多个行。我应该使用JOIN吗?
Subquery returns more than 1 row
我同意子查询部分因为多列而出错;然而,问题是它返回多行,而你的版本仍然这样做 - 因此在运行时失败。 – 2009-03-04 23:57:19