我正在學校項目中,我們負責爲建築公司創建數據庫。我創建了數據庫並插入了我的所有數據。 但我有困難解決其中一個需要的查詢。MySQL學校項目 - 加入問題
請注意,所有列和表名都是丹麥語。
我需要創建一個查詢,告訴我哪個部門(表Afdelinger.id
)只銷售一層樓的房屋(表HusType.Etageantal
)。只有一個部門這樣做,那是07部(AfdId)。
無論我如何創建查詢,我總是會得到所有銷售一層樓的部門或沒有任何東西,但這些部門也銷售2層樓的房屋。所以我的查詢只能輸出AfdId 07. 我想這些質疑,但他們都沒有給我正確的結果
select etageantal, id, udbyder.ModelNr from hustype
inner join udbyder
on id = id
where Etageantal like 1 = Etageantal not like 2
group by id;
select * from hustype
left join udbyder on hustype.modelnr = udbyder.modelnr
where Etageantal like 1
union
select * from hustype
right outer join udbyder on hustype.modelnr = udbyder.modelnr
where Etageantal like 1
order by id;
表Udbyder
是HusType
和Afdelinger
結合表。
Create table Afdelinger(
AfdId int not null,
Navn varchar(45) not null,
PostNr int not null,
primary key(AfdId),
foreign key(PostNr) references PostNummer(PostNr)
) ENGINE=INNODB;
Create Table HusType(
ModelNr int(3) not null,
ModelNavn varchar(10) not null,
Kvm int(3) not null,
Etageantal int(1) not null,
primary key(ModelNr)
) ENGINE=INNODB;
Create table Udbyder(
HusPrisAfd decimal not null,
Id int not null,
ModelNr int(3) not null,
primary key(HusPrisAfd, Id),
unique(HusPrisAfd),
foreign key(Id) references Afdelinger(AfdId),
foreign key(ModelNr) references HusType(ModelNr)
) ENGINE=INNODB;
這裏是我的數據
表名= Afdelinger
+-------+---------------------+--------+
| AfdId | Navn | PostNr |
+-------+---------------------+--------+
| 1 | Herning | 7400 |
| 2 | Brønderslev | 9800 |
| 3 | Haderslev | 6100 |
| 4 | Højbjerg | 8270 |
| 5 | Brabrand | 8220 |
| 6 | Fyn | 5000 |
| 7 | Sjælland og Øerne | 4000 |
+-------+---------------------+--------+
TBL名= Udbyder
+------------+----+---------+
| HusPrisAfd | Id | ModelNr |
+------------+----+---------+
| 1175000 | 2 | 102 |
| 1250000 | 1 | 100 |
| 1275000 | 2 | 103 |
| 1350000 | 1 | 101 |
| 1375000 | 2 | 104 |
| 1450000 | 1 | 102 |
| 1550000 | 1 | 103 |
| 1575000 | 3 | 100 |
| 1600000 | 3 | 102 |
| 1650000 | 2 | 100 |
| 1675000 | 3 | 101 |
| 1700000 | 3 | 103 |
| 1750000 | 2 | 101 |
| 1800000 | 3 | 104 |
| 1941666 | 4 | 102 |
| 1978508 | 4 | 103 |
| 2000000 | 4 | 100 |
| 2015350 | 5 | 101 |
| 2052192 | 5 | 102 |
| 2089035 | 5 | 103 |
| 2100000 | 4 | 101 |
| 2125877 | 5 | 104 |
| 2199561 | 6 | 100 |
| 2236403 | 6 | 101 |
| 2273245 | 6 | 102 |
| 2310087 | 6 | 103 |
| 2346929 | 6 | 104 |
| 2420614 | 7 | 102 |
+------------+----+---------+
TBL名= Hustype
+---------+-----------+-----+------------+
| ModelNr | ModelNavn | Kvm | Etageantal |
+---------+-----------+-----+------------+
| 100 | H-Huset | 167 | 1 |
| 101 | U-Huset | 176 | 1 |
| 102 | L-Huser | 193 | 1 |
| 103 | Skagen | 212 | 2 |
| 104 | Funkis | 242 | 2 |
+---------+-----------+-----+------------+
你剛纔救了我的天,並幫助我更好地瞭解如何加入工作。非常感謝 –