gpt4 book ai didi

mysql - 连接两个表以打印选择性数据。

转载 作者:行者123 更新时间:2023-11-29 08:16:22 25 4
gpt4 key购买 nike

我有三张 table -

表A元数据:

idA(PK)    descA     idB

TableB 元数据:

idB(PK)    assetidC  

TableC 元数据:

assetidC(PK)   descC 

这是一对多的关系

以下选择查询 -

select distinct A.idA, C.descC 
from tableA A, tableB B, tableC C
where C.descC like '%test%'
and C.assetidC = B.assetidC
and B.idB = A.idB

返回结果如 -

idA       descC
1 "I test Java"
1 "I test Oracle"
1 "I test Windows"
1 "I test Software"
2 "I test Java"
2 "I test Oracle"
2 "I test Windows"
3 "I test Java"
3 "I test Oracle"
4 "I test Windows"
4 "I test Software"

我想要的是 - 不同的 idAs 无论它选择哪个 descC!

 idA       descC
1 "I test Java"
2 "I test Java"
3 "I test Java"
4 "I test Software"

我应该在查询中添加什么?

最佳答案

在 MySQL 中,您可以使用 group by 而不是 distinct 来完成此操作:

select A.idA, C.descC 
from tableA A, tableB B, tableC C
where C.descC like '%test%'
and C.assetidC = B.assetidC
and B.idB = A.idB
group by A.idA;

这恰好使用了 MySQL 的一项称为隐藏列的功能,其中 select 中的列不在 group by 中。 MySQL 包含这些列的任意值。这似乎正是您想要的。通常,我发现这个功能更令人困惑而不是有帮助。请注意,该列是任意而不是随机。您可能会为所有列获得相同的值。

关于mysql - 连接两个表以打印选择性数据。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20528555/

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