グループ化と集計によるレコードの削除
P粉731861241
P粉731861241 2023-08-17 19:20:03
0
1
330
<p>次の内容を含む一時テーブルがあります: </p> <pre class="brush:php;toolbar:false;">playlist_id | item_id | 渡されました -------------------------------------- 123 | 111 | 真 123 | 111 | 偽 123 | 111 | 真 123 | 112 | 真 456 | 212 | 偽 789 | 212 | true</pre> <p><code>playlist_id、item_id</code> の場合、結果を減らす必要があります。<code>passed</code> の値がすべて true の場合にのみ保持する必要があります。この例では、私が望む結果は次のとおりです: </p> <pre class="brush:php;toolbar:false;">playlist_id | item_id | 渡されました -------------------------------------- 123 | 112 | 真 789 | 212 | true</pre> <p>2 番目のレコードの <code>playlist_id、item_id</code> のペアには <code>false</code> 値があるため、対応するグループ全体を削除する必要があります。 <code>group by</code> と <code>having</code> を使用してみたので、クエリは次のようになります: </p> <pre class="brush:php;toolbar:false;">選択 プレイリスト、 アイテムID から 一時テーブル グループ化 プレイリストID、 アイテムID = true</pre> を通過しました <p>しかし、これは少なくとも 1 つの <code>true</code> 値を持つすべてのペアを返します。 </p> <p>ブール値の <code>passed</code> フィールドのいずれかが false の場合、すべての <code>playlist_id、item_id</code> レコードを削除するにはどうすればよいですか? </p> <p>ありがとうございます! </p>
P粉731861241
P粉731861241

全員に返信(1)
P粉245003607

HAVING で集計値を使用する必要があります。それ以外の場合は、各グループのランダムな行をテストするだけになります。

各グループの passed の最小値を取得するには、MIN(passed) を使用します。すべての値が true の場合は 1false 値が存在する場合は 0

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート