0

静的データで正常に機能するファンキーなクエリがありますが、データを動的にする必要があります。したがって、静的データは次のようになります

SELECT c.my_name, c.my_id, (SELECT count(d.friendship_id) FROM another_table d WHERE d.my_id = 1 AND d.my_friends_id = 2) as count FROM myprofile c WHERE c.my_id = 1;

これは、次のように必要なデータを返します。

my_name my_id カウント
parijat 123 1 (行が存在しない場合は 0)

参考までに、another_table.my_id (外部キー)、another_table.my_friends_id の両方が myprofile.my_id (主キー) を参照しています。ここでは、another_table.friendship_id が主キーであり、自動インクリメントされます。

今、実際の質問:

サブクエリを次のようにしたい: (SELECT count(d.friendship_id) FROM another_table d WHERE d.my_id = 1 AND d.my_friends_id = CURRENT_ROW_ID)

ここで、CURRENT_ROW_MY_ID は、メイン クエリで選択されている c.my_id です。

これは可能ですか?そうでない場合、必要な結果を得るにはどうすればよいですか?

4

2 に答える 2

0

オプションを完全に検討する前に、時々質問します。select ステートメントでも相関サブクエリが正常に機能することがわかりました。これを機能させるために私がしたことは次のとおりです。

SELECT c.my_name, c.my_id, (SELECT count(d.friendship_id) FROM another_table d WHERE d.my_id = 1 AND d.my_friends_id = c.my_id) as count FROM myprofile c WHERE c.my_id = 1;

my_id は少しあいまいです。profile_id の方が適切な言葉ですが、レガシー データベースを扱うのは楽しいことではありません。

于 2013-04-04T22:06:28.073 に答える