繁体   English   中英

mysql:数据透视表处理程序请求?

[英]mysql : a pivot table handler request?

我有一个mysql问题:

与MySQL一起使用php我实际上有一个看起来像这样的模式:

3桌

模组
module_has_theme(数据透视表)
主题

这背后的想法是使用主题显示我的应用程序的模块,如果有,则没有,然后在额外的类别(其他)中显示它们。

因此,假设我用一些模块填充了模块表:mod1,mod2,mod3,mod4,mod5

然后我创建一些主题:水果,动物,数字,人类

然后在数据透视表中,将mod1与动物绑定。

然后我想要这样的请求结果(或类似的东西)

结果:

水果=> null,
动物=> mod1,
数字=> null,
人=> null,
其他=> mod2,mod3,mod4,mod5

实际上,我的代码使用了2个mysql请求和一个php循环来执行此操作,

第一个请求占用所有模块
第二个请求采用所有具有主题的模块(使用两个内部联接)
一个php循环,使用我上面想要的两个结果数组来组织模块

现在我想知道是否会有一个神奇的mysql请求在一个单一请求中执行相同的工作?
如果您知道,请告诉我;)

阅读内联接和外联接

尝试类似...

SELECT module AS M
INNER JOIN module_has_theme AS MT
ON M.module_id = MT.module_id
LEFT JOIN theme AS T
ON T.theme_id = MT.theme_id

最好直接在MySQL客户端(例如toadmysql)中运行此类查询,以测试您是否获得了正确的结果。

AS MAS MTAS T是表名的别名,以帮助缩短查询时间。 祝好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM