假设一个教室数据库。它有两个表(stuDB和regDB):
stuDB包含age,dob,rollnum列。 rollnum是分配给每个学生的唯一数字(1到100),其余属性(年龄,DOB)不是唯一的。 搜索查询1: 从db1.stuDB中选择age,DOB,rollnum,其中age ='x'< ---这将返回所有x岁学生的年龄,DOB和唯一rollnum的表格。
regDB包含studentname,fathername,regno。请注意,regno是唯一的数字,等于每个学生的rollnum。即regno =所有学生的rollnum。 搜索查询2: 从db1.regDB中选择fathername,mothername,childage,regno,其中regno ='1'
我首先运行query1,确定rollnum的值,将rollnum的结果作为regno手动输入query2。因此,我必须为每个学生手动运行查询2.
我想以某种方式将两个查询联系起来,并将结果显示为单个搜索结果,显示所有内容: studentname,fathername,regno,fathername,mothername,childage,regno ,对于我搜索条件年龄= 8。
换句话说,构建query1的结果,将rollnum的结果作为regno提供给query2,并显示两个查询的组合结果。
能做到吗?我不了解SQL,所以需要一些帮助。
提示: 可以使用以下命令连接两个查询:
SELECT * FROM(选择年龄,DOB,来自db1.stuDB的rollnum,其中age ='x')CROSS JOIN(从db1.regDB中选择fathername,mothername,childage,regno,其中 regno = '1 “ )。不知何故,我想从此查询的前半部分将 rollnum 的输出作为 regno 提供给此后半部分自动查询。
答案 0 :(得分:0)
这就是解决方法:
SELECT age,DOB,rollnum,fathername,mothername,childage,regno 来自db1.stuDB 加入db1.regDB ON db1.regDB.regno = rollnum WHERE(年龄='x')
* WHERE()可以是我想要使用的任何搜索条件。
谢谢amdixon。当然,这只是一个例子。我的实际数据库完全不同,与学校无关。