私は2つのテーブルを持っています:
question(qid int,title varchar(100))
answer(aid int,qid int,vote int,content varchar(4096))
Qid と aid が主キーです。
各質問にはいくつかの回答があり、各回答には投票数があります。
いくつかの質問qidを取り、質問にいくつかの回答がある場合、各質問の最大(投票)回答を見つける方法は?
元:
mysql> select * from question;
+-----+-------+
| qid | title |
+-----+-------+
| 1 | abc |
| 2 | efg |
| 3 | hij |
| 4 | mn |
+-----+-------+
mysql> select * from answer;
+-----+------+------+---------+
| aid | qid | vote | content |
+-----+------+------+---------+
| 77 | 3 | 45 | mysql2 |
| 110 | 1 | 95 | good |
| 122 | 1 | 78 | bad |
| 123 | 1 | 34 | bad2 |
| 223 | 2 | 56 | book1 |
| 224 | 2 | 82 | book2 |
+-----+------+------+---------+
ここで、qid(1,2) を指定すると、次の結果が得られます。
+-----+------+------+---------+
| aid | qid | vote | content |
+-----+------+------+---------+
| 110 | 1 | 95 | good |
| 224 | 2 | 82 | book2 |
+-----+------+------+---------+
max(vote) 列だけでなく、完全なアンサー レコード (すべての列を含む) が必要です。
各質問の最良の回答(最大投票回答)を表示したいだけです。
MySQL で最高の SQL は何ですか?
ありがとうございました!
2013/1/7 更新:
answer
存在する場合は、最高の 1 つ (最大投票数の回答)のみを表示したいと思います。@Brian Hoover からの回答は、MySQL の下でのみ正常に機能します。
おそらく、すべてのデータベースで正常に機能する SQL はありません。