0

次の行を含む回答のサンプル表があります。ID に基づいて質問テーブルと結合されているため、ID が重複する可能性があります (つまり、質問には複数の回答がある可能性があります)。

answers.id | answers.username | answer | date
   1       |       mikha      | you    | 2013-01-01 00:00:00   
   1       |     maricela     | really | 2013-01-01 00:00:00 
   1       |        guy       | rock   | 2013-01-01 00:00:00

「maricela」による回答の後にすべての行を選択するために使用できるクエリはありますか?

次のようなもの:

SELECT * FROM answers WHERE id = 1 AND answers.username > 'maricela'

しかし、上記のようにすると0行が返されます。これは、上記のようにアルファベット順に選択され、アルファベット順に男がマリセラの前にあるためです。

値を持つ行を次々と選択する方法はありますか? ID=1およびUSERNAME=mariclea?の後の行

4

3 に答える 3

2

回答テーブルに一意の ID を追加し、質問テーブルに結合するために使用される新しい列を作成することを強くお勧めします。

question_id |  id | username | answer | date
    1       |   1 | mikha    | you    | 2013-01-01 00:00:00   
    1       |   2 | maricela | really | 2013-01-01 00:00:00 
    1       |   3 | guy      | rock   | 2013-01-01 00:00:00

次に、次を使用できます。

SELECT * FROM answers WHERE id > (
    SELECT id FROM answer WHERE username = 'maricela' and question_id = 1
)
于 2013-01-01T14:56:29.503 に答える
0

これは簡単にできます、

SELECT b.* FROM table1 b WHERE b.id> 
(SELECT a.id FROM table1 a WHERE a.username='maricela'
and a.answer_id=1)

ライブSQLデモ

于 2013-01-01T15:02:03.117 に答える
0

「後」の概念が時間に関連している場合 (つまり、「maricela」の後に回答が挿入されている場合)、回答テーブルに DATE/TIME 列を追加することを検討できます。このようにして、いくつかの回答が他の回答よりも遅く与えられるようにします

于 2013-01-01T14:55:47.360 に答える