drafts
次のようなテーブルがあるとします。ここで、sent_for_review
はブール値です。
rowid | title | author | sent_for_review
-------|--------|----------|-----------------
1 | Draft1 | John Doe | 0
2 | Draft2 | John Doe | 0
3 | Draft3 | John Doe | 1
4 | Draft4 | John Doe | 1
レビューのために送信されたすべての下書きを選択したいと思います。ない場合は、レビュー用に送信されていないすべての下書きを選択します。
次のことを試して、グループ化してsent_for_review
から最も高いものだけを選択しました。
FROM drafts SELECT title WHERE author='John Doe'
GROUP BY sent_for_review HAVING MAX(sent_for_review)
ただし、これはDraft3とDraft4が存在する場合にのみDraft3を返します(両方を返す必要があります)...そしてDraft1とDraft2のみが存在する場合(両方を返す必要があります)は何も返しません。
すべての最大値を返すようにするにはどうすればよいですか?
これとともに:
select * from drafts
where
author='John Doe' and
sent_for_review = (select max(sent_for_review) from drafts where author='John Doe')
このクエリ:
select max(sent_for_review) from drafts where author='John Doe'
返されます:
1
レビューのために送信されたドラフト
0
がある場合とない場合
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加