すばらしい答えをありがとう!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! |
+------+--------+
グループのアクションを選択したいと思います。私の考えは
SELECT actions, user FROM userActions
WHERE user = (SELECT user, group FROM userGroupMap WHERE group = a)
にした。しかし、明らかにこのサブクエリは複数の行を返します。私はJOINを使うべきですか?
Subquery returns more than 1 row
ありがとうございました!あなたの答えで、私は完璧な結果を得ました。私はまた大きなテーブルについての注記に感謝します(それがあなたの答えを受け入れた理由です)。 括弧で囲んだ理由を詳しく説明できますか?「[group]」? – Blaine
サブクエリが必要な理由は何もありません。 WHERE句をフィルタリングするストレートインナージョインも、この作業を行う必要があります。 –
@Blaine:括弧内に[group]を入れます。なぜなら、列/表名として使用されるキーワードが明示的に指定されていなければ、キーワードとDBMSが狂ってしまうからです。同じ理由で私は[表]を括弧で囲みます。 @Jonathan Leffler:そうです、質問に気を取られ、サブクエリを使用しているだけです。 – achinda99