這裏一個SQL計數簡化架構:如何執行基於外鍵
CREATE TABLE IF NOT EXISTS `person` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`HousingId` int(11) NOT NULL,
PRIMARY KEY (`Id`)
);
CREATE TABLE IF NOT EXISTS `housing` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`Capacity` int(11) NOT NULL,
PRIMARY KEY (`Id`)
);
我怎麼能簡單地獲得每個房屋的自由空間?
我嘗試以下查詢:
select housing.Id, housing.Capacity - count(person.Id)
from housing, person
where person.HousingId = housing.Id
group by housing.Id
但它僅適用於具有至少一個人,而不是空的住房。
感謝您的幫助!
其SQL?MySQL和MSSQL,sqllite –
我使用MySQL,但問題應該是有效無論DB系統。 –
嘗試在SQLfiddle中構建該模式來測試它,然後告訴我... –