gpt4 book ai didi

mysql - 如何使用查询 DSL 连接表

转载 作者:行者123 更新时间:2023-11-30 22:43:21 26 4
gpt4 key购买 nike

我在我的应用程序中使用 queryDsl 进行复杂的搜索查询。我是 querydsl 的新手。我从下面的代码开始,从一个表 (TableA) 中获取几行。但我必须在其他一些表(TableB)中找到具有相同 ID 的人员(Count)列表

public static Predicate find(final Long pId)
QPerson qPerson = QPerson.person;
Predicate predicate;
BooleanBuilder booleanBuilder = new BooleanBuilder();
if (pId != null) {
booleanBuilder.or(qPerson.person_no.eq(pId));
}
if (name != null && !name.isEmpty()) {
booleanBuilder.or(qPerson.expiry_dt.eq(name));
}
predicate = booleanBuilder.getValue();
return predicate;
}

表A:

pId         name

1001 sampleNameA
1002 sampleNameB
1003 sampleNameC

表B:

pId        name       interests

1001 sampleNameA music
1001 sampleNameA dance
1001 sampleNameA coding
1003 sampleNameC music
1002 sampleNameB dance
1002 sampleNameB coding

我需要通过以下查询获得这样的输出

select cnt cnt, tableA.* from master_person_table tableA,(select count(*) cnt from tableB WHERE pId = '1002') cnt其中 pId = '1002'

输出:

  count  pId        name       
2 1002 sampleNameB

我需要在我的 HTML 中显示行数(对于 id=1002)。

谁能帮我找到要从表 B 中获取的 pId 的计数

提前致谢

最佳答案

请尝试以下查询:-

1.对于多个pId:-

SELECT COUNT(*) AS COUNT, pId, name FROM TableB GROUP BY pId

2.For only selected pId:-

SELECT COUNT(*) AS COUNT, pId, name FROM TableB WHERE pId = 1002

如果您需要更多帮助,请告诉我。

关于mysql - 如何使用查询 DSL 连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30431011/

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