我将MySql数据库连接到我的Java应用程序。我的用户可以选择膳食,膳食类别,数量,写笔记和订餐。我将这些订单存储在表usluga_hrana
中。目前我只在餐饮服务工作,但我也有其他服务,如饮料服务,叫醒服务等。这就是为什么我需要为来自不同服务的所有订单再添加一个表,并将其命名为narudzba
。现在我需要在一个查询中显示所有这些属性的值:broj_sobe
(房间号,表格narudzba),id_narudzba
(id order,表narudzba),naziv_kategorija
(类别名称,表格) kategorija_jela),naziv_hrane
(用餐名称,表naziv_jela),kolicina
(数量,表usluga_hrana),napomena
(注意,表usluga_hrana),datum_vrijeme
(日期和时间) ,表usluga_hrana)和izvrseno
(完成,表narudzba)。问题是所有这些属性都在不同的表中,当我执行查询时,它会显示多个订单,餐点等值。
我的桌子以这种方式连接:
表格narudzba中的PK id_usluga
(表格usluga
)是FK id_usluga
PK id_usluga
(表格usluga
)在表usluga_hrana中为FK id_usluga
表格usluga_hrana中的PK id_kategorija
(表格kategorija_jela
)为FK id_kategorija
PK id_hrana
(表格naziv_jela
)在表usluga_hrana中为FK id_hrana
表格naziv_jela中的PK id_kategorija
(表kategorija_jela
)为FK id_kategorija
以下是我的表格的相册以及具有多个值的查询结果: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 :(得分:0)
你用非英语命名你的表格让我们很难阅读/理解/思考,即使你已经将它翻译成英语:)
您的重复数据可能来自您的查询或数据表
我可以在您的usluga_hrana
表格中看到番茄汤(id = 10)的记录不同数量(4和7)。这使您的查询结果 2行番茄汤。另一个例子,你有4条希腊沙拉的记录,但是因为其中3条得到相同的数量= 1所以当查询运行时,它返回2行(数量1和2)
不确定您想要什么,但如果您不希望查询结果重复,那么您应该不 SELECT
数量列,并在需要时执行DISTINCT
结果