2013-08-31 29 views
0

我的MySql數據庫連接到我的Java應用程序。我的用戶可以選擇膳食,膳食類別,數量,寫下便條和訂餐。我將這些訂單存儲在表usluga_hrana中。目前我只與餐飲服務工作,但我也有其他服務,如飲料服務,叫醒服務和其他服務。這就是爲什麼我需要一張表來處理來自不同服務的所有訂單,其名爲narudzba。現在我需要在一個查詢中顯示所有這些屬性的值:broj_sobe(房間號,表narudzba),id_narudzba(id訂單,表narudzba),naziv_kategorija(類別名稱,表kategorija_jela),naziv_hrane(餐的名稱,表naziv_jela) ,kolicina(數量,表usluga_hrana),napomena(注意,表usluga_hrana),datum_vrijeme(日期和時間,表usluga_hrana)和izvrseno(完成,表narudzba)。問題是,所有這些atributes在不同的表,當我執行我的查詢,它顯示了我的訂單,餐費等多個值MySQL查詢顯示比預期更多的數據

我的表連接是這樣的:
PK id_usluga(表usluga)是FK id_usluga在表narudzba
PK id_usluga(表usluga)是FK id_usluga在表usluga_hrana PK id_kategorija(表kategorija_jela)是FK id_kategorija在表usluga_hrana
PK id_hrana(表naziv_jela)是FK id_hrana表usluga_hrana PK id_kategorija(表kategorija_jela)是FK id_kategorija表naziv_jela

這裏是我的表的專輯,我有多個值的查詢結果:http://imgur.com/a/6grPN
這裏的專輯我的表的其餘部分:http://imgur.com/a/sFPie

這裏是我的查詢:

SELECT n.broj_soba, n.id_narudzba, kj.naziv_kategorija, nj.naziv_hrane, us.kolicina, 
us.napomena, us.datum_vrijeme, n.izvrseno 
FROM narudzba n 
JOIN usluga u ON n.id_usluga = u.id_usluga 
JOIN usluga_hrana us ON u.id_usluga = us.id_usluga 
JOIN naziv_jela nj ON us.id_jela = nj.id_jela 
JOIN kategorija_jela kj ON nj.id_kategorija = kj.id_kategorija 
GROUP BY n.id_narudzba, us.id_usluga_hrana 

我覺得我的查詢不好......

回答

0

你的名字你的表中沒有英語讓我們很難讀/理解/想,即使你已經把它翻譯爲英語:)

你的重複數據可以來自你的查詢或數據表

我可以在你的usluga_hrana表中看到你要記錄的番茄湯(id = 10)不同數量(4和7)。這讓你的查詢結果2番茄湯。另外一個例子,你也有4條希臘沙拉的記錄,但是因爲它們中的3個得到了相同的數量= 1,所以當查詢運行時,它返回2行(數量1和2)

不確定你想要什麼,但是如果你不希望查詢結果重複,您應該不是SELECT的數量欄和做DISTINCT如果需要的結果