プロパティが 2 つ以下 (テーブル内の行が 2 つ以下)のアセットのasset_id
、category_name
、および を選択したい。これまでのところ、私が持っているのはandだけです。がすべてのアセットに存在するとは限りません。もしそうなら、それはfrom a row withFixture ID
asset_property
asset_id
category_name
Fixture ID
property_value
property_id 1
望ましい結果の例
asset_propertyテーブル:
| asset_id | property_id | property_value |
|:--------:|:-----------:|:---------------|
| 100 | 1 | A-6 |*
| 100 | 6 | Blue |
| 104 | 1 | CC-7 |*
| 104 | 6 | Blue |
| 104 | 4 | 12" |
| 105 | 1 | B-1 |*
| 108 | 1 | HR-1 |*
| 109 | 3 | 500 |
| 109 | 4 | 1" |
※ property_id
1はFixture ID
望ましい結果:
| asset_id | category_name | property_value*|
|:--------:|:-------------:|:---------------|
| 100 | Flooring | A-6 |
| 104 | Flooring | CC-7 |
| 105 | Kitchen Equip | B-1 |
| 108 | Plumbing | HR-1 |
| 109 | Plumbing | |
*property_value
はFixture ID
_ property_id
_1
これまでのMYSQL
MySQL:
SELECT asset_property.asset_id, category_name
FROM asset_property
LEFT JOIN asset
ON asset.asset_id = asset_property.asset_id
LEFT JOIN category
ON category.category_id = asset.category_id
GROUP BY asset_property.asset_id
HAVING COUNT(asset_property.asset_id) <= 2
MySQL からの結果:
| asset_property.asset_id | category_name |
|:-----------------------:|:--------------|
| 3048 | Parking Lot |
| 3519 | Kitchen |
| 3522 | Kitchen |
| 3597 | Flooring |
(etc...)
SELECT
そのため、property_value WHERE
theも必要property_id = 1
です。これが理にかなっていることを願っています、ありがとう!