我想为具有 2 个或更少属性(表中的 2 行或更少行)的资产选择asset_id
、category_name
和。到目前为止,我只有and 。可能并非对所有资产都存在。如果是这样,那将是从一行 Fixture ID
asset_property
asset_id
category_name
Fixture ID
property_value
property_id 1
期望结果示例
资产属性表:
| 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
. property_id = 1
我希望这是有道理的,谢谢!