sql >> データベース >  >> RDS >> Mysql

同じ列のmysqlAND句が複数回

    これを試してください:

    SELECT property_id FROM amenities
    WHERE amenity_name IN ('parking', 'elevator')
    GROUP BY property_id 
    HAVING COUNT(amenity_name) >= 2
    

    何が起こっているのか...

    まず、興味のある設備を備えたプロパティIDのリストを取得します。

    SELECT property_id FROM amenities WHERE amenity_name IN ('parking', 'elevator')

    次に、リストを絞り込んで、複数のアメニティを持つプロパティIDのみを含めます。 property_idでグループ化すると、結果は、それらが属するproperty_idに基づいて一意のグループにまとめられます。次に、各グループのamenity_namesの数を数え、2以上かどうかを確認します。

    GROUP BY property_id HAVING COUNT(amenity_name) >= 2

    上記のコードの1つの前提条件は、同じamenity_nameがproperty_idに複数回関連付けられないことです。これに関連する問題を解消するには、HAVINGを変更します DISTINCTを含める句 重複を取り除くためですが、必要な場合を除いて追加しないでください。

    GROUP BY property_id HAVING COUNT(DISTINCT(amenity_name)) >= 2



    1. 入力値がnullでない場合は列を更新し、そうでない場合は列の既存の値を無視してデータベースに保持します

    2. 結果セットを閉じた後、Oracleはカーソルを削除しません

    3. PHPの未定義のインデックス画像

    4. 集計関数なしのGROUPBY