【发布时间】: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 让它工作了。