0

以下の表から、次のようなレコードを選択しようとしています。

  • 過去 1 か月以内に追加された (スコアに関係なく)
  • 1 か月以上前に追加され、スコアが 10 以上のレコード

私の努力は以下のとおりですが、どこかで間違っています

select id from candidates 
where dateEnrolled >= date_sub(now(), interval 1 month) 
and dateEnrolled <= now() and score >=10;

私は乗り続け7 and 8ます。正解には、次の ID のみを含める必要があります1 2 5 6 7 8 9 10

助けていただけますか?

"id"    "dateEnrolled"  "score"
"1"     "2013-01-01"    "12"
"2"     "2013-02-01"    "15"
"3"     "2013-03-01"    "9"
"4"     "2013-04-01"    "8"
"5"     "2013-05-01"    "20"
"6"     "2013-08-01"    "0"
"7"     "2013-08-12"    "10"
"8"     "2013-08-13"    "12"
"9"     "2013-08-15"    "1"
"10"    "2013-08-17"    "5"
4

2 に答える 2

2

次のようなものを試してください

select id from candidates where dateEnrolled >= date_sub(now(), interval 1 month)
      or (dateEnrolled <= now() and score >=10);

andセレクターを に交換しますor

于 2013-08-28T10:04:50.353 に答える
1
select id from candidates 
where dateEnrolled >= date_sub(now(), interval 1 month) 
and dateEnrolled <= now() 
or (score >=10 and dateEnrolled < date_sub(now(), interval 1 month) );
于 2013-08-28T10:04:51.573 に答える