假设教室数据库。它有两个表(stuDB和regDB):
stuDB包含age,dob,rollnum列。 rollnum是分配给每个学生的唯一数字(1到100),其余属性(年龄,DOB)不是唯一的。
搜索查询1:
从db1.stuDB中选择年龄,DOB,rollnum,其中age ='x'regDB包含学生姓名,父亲姓名,regno。请注意,regno是唯一的数字,等于每个学生的rollnum。即所有学生的regno = rollnum。
搜索查询2:
从db1.regDB中选择父亲名,母亲名,孩子,regno,其中regno ='1'
我首先运行query1,确定rollnum的值,将rollnum的结果作为regno手动输入到query2中。因此,我必须为每个学生手动运行查询2。
我想以某种方式合并这两个查询,并将结果显示为显示所有内容的单个搜索结果:学生名,父亲名,regno,父亲名,母亲名,孩子,regno一次,对于我的搜索条件age = 8。
换句话说,构建query1的结果,将rollnum的结果作为regno输入到query2中,并显示两个查询的合并结果。
能做到吗?我不了解SQL,因此需要一些帮助。
暗示:
可以使用以下命令将两个查询结合起来:
SELECT * FROM(从db1.stuDB中选择年龄,DOB,rollnum,其中age ='x')CROSS JOIN(从db1.regDB中选择父亲,母亲,孩子,regno,其中regno ='1')。不知何故,我想从此查询的前半部分将rollnum的输出作为regno自动馈入该查询的后半部分。
最佳答案
解决方法如下:
选择年龄,出生日期,rollnum,父亲姓名,母亲姓名,孩子年龄,regno
从db1.stuDB
加入db1.regDB
开启db1.regDB.regno = rollnum
在哪里(年龄='x')
* WHERE()可以是我希望使用的任何搜索条件。
谢谢amdixon。当然,这仅仅是一个例子。我的实际数据库是完全不同的,与学校无关。
关于mysql - 如何将一个查询的搜索输出作为值提供给另一查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34690868/