如何在 mysql 中使用带有三个表的子查询/连接?
Posted
技术标签:
【中文标题】如何在 mysql 中使用带有三个表的子查询/连接?【英文标题】:How to use a subquery/join with three tables in mysql? 【发布时间】:2014-02-03 17:57:58 【问题描述】:测试计划
-
身份证
testplan_id
tcversion_id
platform_id
处决
1. id
2. build_id
3. testplan_id
4. tcversion_id
5. platform_id
6. status
7. execution_ts
8. tester_id
构建
1. id
2. testplan_id
3. name
4. active
如上所示,我有三个表。 测试计划表存储所有用例 执行表存储执行相关数据 构建表存储构建相关数据
我想从这些表中检索数据,这样它应该显示 testplan 表中的所有行,如果执行表中有任何执行,并且只有构建表中的构建名称,则对于每一行。
我使用了以下查询
SELECT
tptcv.id,
tptcv.testplan_id,
e.tcversion_id,
tptcv.platform_id,
tptcv.creation_ts,
b.name AS Build_name,
e.status AS status,
e.execution_ts,
e.tester_id
from testplan tptcv
inner join executions e on tptcv.tcversion_id=e.tcversion_id and tptcv.platform_id=e.platform_id and tptcv.testplan_id=e.testplan_id
inner join builds b on tptcv.testplan_id=b.testplan_id
WHERE
b.active=1
enter code here
这个查询没有给我预期的结果,因为在此处输入代码所需的计数与测试计划表中的行相比。
如果有人在这种情况下帮助我,我将不胜感激。
提前致谢。
【问题讨论】:
请提供样本数据和所需结果。 嗨,戈登,请给我您的电子邮件,以便我可以向您发送示例数据和所需的结果。我试图将文件/图像附加到此帖子,但由于我是该论坛的新用户并且不允许我附加文件,因此无法这样做。谢谢 您可以将照片上传到文件共享网站,然后将链接粘贴到此处。 请参考这些链接获取所有表的样本数据照片,查询结果和我期待的结果testplanexecutionsbuildsQueryResultExpectedResults 【参考方案1】:删除WHERE b.active = 1
并检查您是否得到预期的答案(因为构建表没有名为active
的列)
【讨论】:
我的表中有活动字段,我忘了在我的帖子中提及以上是关于如何在 mysql 中使用带有三个表的子查询/连接?的主要内容,如果未能解决你的问题,请参考以下文章