こんにちは、私は現在一種のクイズ アプリケーションを開発しています。「Discover」セクションでは、人気のある最新の質問を取得します。しかし、それらを取得したら、質問が現在のユーザーによって既に回答されているかどうかも確認する必要があります。
これが私のテーブルです:質問:(media_idは主キー、player_idは質問の作成者です)
media_id - player_id - answer0 - answer1 - ...
回答: (media_id は主キー、player_id は質問に回答した人です)
media_id - player_id - result - ...
これは私がよくある質問を得る方法です:
select * from questions where order by popularity_count
編集: 私が達成したいことを例で示しましょう:
質問行:
media_id - player_id - answer0 - answer1
0123456 abc123 bla bla
6543210 hjk789 lor ips
回答行:
media_id - player_id - result
6543210 abc123 1
したがって、ユーザー「abc123」がよくある質問を受け取ると、結果は次のようになります。
media_id - player_id - answer0 - answer1 - is_answered
0123456 abc123 bla bla 0
6543210 hjk789 lor ips 1
問題は、クエリの結果に、現在のユーザーが質問に回答したかどうかを示す一時的な列が必要なことです。どうすればこれを達成できますか?
2 つのクエリを使用して、人気セクションの質問が既に回答されているかどうかを確認できます。最初に人気のある質問を取得してから、すべての質問に対して質問が回答されているかどうかを確認するだけですが、これは非常に効果的ではないようです。1 つのクエリだけでこれを達成するにはどうすればよいですか?
ありがとうございました!