如何将一个查询的搜索输出作为值提供给另一个查询

Posted

技术标签:

【中文标题】如何将一个查询的搜索输出作为值提供给另一个查询【英文标题】:How to feed search output from one query as a value to another query 【发布时间】:2016-04-13 22:50:35 【问题描述】:

假设一个教室数据库。它有两个表(stuDB 和 regDB):

stuDB 包含列 age、dob、rollnum。 rollnum 是分配给每个学生的唯一数字(1 到 100),其余属性(年龄、出生日期)不是唯一的。 搜索查询1: Select age, DOB, rollnum from db1.stuDB where age='x'

regDB 包含学生姓名、父亲姓名、regno。请注意,regno 是唯一的数字,等于每个学生的 rollnum。即所有学生的 regno=rollnum。 搜索查询2: 从 db1.regDB 中选择父亲姓名、母亲姓名、子女年龄、regno,其中 regno='1'

我首先运行query1,确定rollnum的值,将rollnum的结果作为regno手动输入query2。因此,我必须为每个学生手动运行查询 2。

我想以某种方式合并这两个查询并将结果显示为单个搜索结果,显示所有这些:studentname,fathername,regno,fathername,mothername,childage,regno搜索条件年龄=8。

换句话说,构建 query1 的结果,将 rollnum 的结果作为 regno 输入 query2 并显示两个查询的组合结果。

可以吗?我不了解 SQL,所以在这里需要一些帮助。

提示: 可以使用以下方法连接这两个查询:

SELECT * FROM (Select age, DOB, rollnum from db1.stuDB where age='x') CROSS JOIN (Select parentname, mothername, childage, regno from db1.regDB where regno='1 ')。不知何故,我想将此查询前半部分的 rollnum 输出作为 regno 提供给后半部分自动查询。

【问题讨论】:

作为建议,您应该使用直观的名称来调用您的对象。例如。 stuDB 是一个表(不是数据库),也许可以称为学生(假设它存储的是什么) Can that be done?。是的,它可以 - 请发布 show create table stuDB 的输出(对于 regDB 也是如此)一些示例数据和所需的输出 感谢大家的回复。我使用 Join On 让它工作了。 【参考方案1】:

它是这样解决的:

SELECT 年龄、出生日期、rollnum、父亲姓名、母亲姓名、孩子年龄、regno 来自 db1.stuDB 加入 db1.regDB ON db1.regDB.regno = rollnum 哪里(年龄='x')

*WHERE() 可以是我希望使用的任何搜索条件。

感谢 amdixon。当然,这只是一个例子。我的实际数据库完全不同,与学校无关。

【讨论】:

一般来说,它有助于其他人能够复制您的问题(使用示例数据、结构等)。很好地解决了这个问题

以上是关于如何将一个查询的搜索输出作为值提供给另一个查询的主要内容,如果未能解决你的问题,请参考以下文章

如何将微调过的 bert 模型的输出作为输入提供给另一个微调过的 bert 模型?

在 Grafana 中,如何使用我创建的变量并将其作为值提供给图形的查询搜索?

使用变量作为表名并传递给另一个 sql 查询 [重复]

将查询保留在搜索栏中,但使用占位符作为初始默认值

Laravel查询以输出json数据作为选择列表。如何修改现有代码以连接两个值

MVC3 如何将多个查询结果赋值到cshtml页面中?