几年前我用过一点MySQL;现在我忘记了很多,我迷失了。信息:MySQL版本5. 7. 44- PHP版本8. 1. 25我想实现的应该很简单:我有一个DB,有2个表[在我的例子中是组件和类型];它们共享IDtype。这是一个简单的例子:
Tables:
Components [Code, Qty, IDtype]:
Code10, 2, 1
Code20, 10, 2
Code30, 5, 1
Code40, 3, 2
Code50, 7, 1
---
Types [Type, IDtype]:
Standard, 1
Special, 2
---
字符串
我想得到这个结果:
[Standard, 3] Code10, Code30, Code50
[Special, 2] Code20, Code40
型
即:Type名称和检索到的记录数,后面是提取的记录列表,我尝试了几次查询都没有成功,最后一个是:
$query = "SELECT * FROM Components
WHERE Components.IDtype = ALL (SELECT Types.IDtype FROM Types)";
型
这不会传回任何结果。
即使是我在另一篇文章中找到的这一条也没有做到这一点:
SELECT `KEY`, GROUP_CONCAT(Val SEPARATOR ",") as vals
from table group by `KEY`;
型
此外,我承认我的最后一个查询是正确的如何报告我不明白如何从类型表中获取名称和记录计数,因为我只选择了IDtype,而不是整个记录。谢谢
2条答案
按热度按时间wj8zmpe11#
您可以使用结合链接和群组的SQL查询,根据
IDtype
数据行,汇总Components
和Types
数据表的数据。字符串
See this db<>fiddle的一个。
nafvub8i2#
谢谢阿米特,我试过你的查询,但它给了我一个错误.这是我的查询(翻译成意大利语使用的真实的名字)和错误我得到:
字符串
你的小提琴工作得很好,即使有几点我不明白:
从组件c内部联接类型t
你用c作为组件的别名,用t作为类型的别名,对吗?如果是这样,我应该写吗?
从Tipi Tipi INNER加入Tipi
奇怪的语法,无论如何,这不会改变任何事情。