gpt4 book ai didi

mysql - 内连接返回重复的注册表

转载 作者:行者123 更新时间:2023-11-29 17:19:53 24 4
gpt4 key购买 nike

嗯,我对此很陌生,所以这是我的问题..我正在尝试制作某种多餐厅菜单数据库,经过对结构的大量努力,我得到了一个。

这是整体结构。

Clients
ID (int 10, PK)
mombre(varchar)
etc etc.(etc)

menucat
menuID (int 10, FK references clients.ID)
IDcat (int 10, PK)
nombre

menuitem
ID (int 10, PK)
catID (int 10, FK references IDcat)
nombre



problem:

到目前为止我有这个查询:

SELECT c.ID
, c.nombre
, mc.nombre
, mi.nombre
FROM clientes as c
, menuitem as mi
, menucat
JOIN menucat as mc
ON mc.IDcat = mi.cat Id
GROUP
by mc.IDcat

这给我带来了:mc.nombre 和 mi,nombre 很好,正如预期的那样。

但是,c.ID 和 c.nombre 重复出现,就好像它只有一个注册表...我如何制定此查询,以便它为我的两个客户端带来各自的菜单?

抱歉,我的英语很差,写在这里的技巧也很差。

谢谢。顺便说一句,我正在使用 phpmyadmin SQL 控制台

最佳答案

SELECT c.ID , c.nombre , m.nombre , i.nombre 
FROM Clients AS c
INNER JOIN menucat AS m
ON m.menuID = c.ID
INNER JOIN menuitem AS i
ON i.catID = m.IDcat

这将返回所有菜单项及其关联的菜单和客户端。 (假设它们是关联的)

考虑重命名表中的列以使数据库中的引用更容易。例如,引用 clients.IDmenucat 上的 FK 约束应该位于名为 ClientID 的列或类似的列上。不在名为 menuID 的项目上,因为它与客户端相关,而不是菜单。

如果您向我们提供您想要返回的示例,也会有所帮助。

关于mysql - 内连接返回重复的注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51314460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com