主表明细表的查询如何写?

时间:2022-09-01 21:38:08
表1 【ID,班级,班主任】,
=============================
 ID       班级            班主任   
  1       一(1)班       黄XX
  2      一(2)班       黄XX
  3      一(3)班       陈XX
  4      一(4)班       蔡XX
  5      一(5)班       伍XX
  ...


表2 【ID,学号,班级,学生姓名】,
=============================
 ID       班级           学生姓名      学生电话 ...
  1         1            刘XX
  2         2            戴XX
  3         2            白XX
  4         3            陈XX
  5         4            陆XX
  ...

以表2的ID作为查询条件得到
=======================================================
  班级          学生姓名         班主任      学生电话
 一(1)班       刘XX         黄XX
 一(2)班        戴XX         黄XX
 一(2)班        白XX         陈XX
 一(1)班        陈XX         蔡XX
 一(1)班        陆XX         伍XX 

.....

请问这个SELECT语句如何写?

10 个解决方案

#1


select b.班级,a.学生姓名,b.班主任,a.学生电话 from 表2 a inner join 表1 b on a.班级 = b.ID

#2


这样不行,我如何输入条件进行查询??
ID= Edit1.text ?????

#3


大致情况等于一个是类别表(两个字段,一个是分类ID,另一个是分类名称),一个产品表(含有分类ID,不是分类名称),产品表里面的产品类别其实就是类别表的分类ID,当通过输入产品ID查询,能把产品以及产品的类别名称查出,这样能实现吗?

#4


引用 2 楼 aa20000 的回复:
这样不行,我如何输入条件进行查询??
ID= Edit1.text ?????


qry.sql.text := format('select b.班级,a.学生姓名,b.班主任,a.学生电话 from 表2 a inner join 表1 b on a.班级 =%d',[strtoint(Edit1.text)]);

#5


引用 4 楼 simonhehe 的回复:
引用 2 楼 aa20000 的回复:这样不行,我如何输入条件进行查询??
ID= Edit1.text ?????

qry.sql.text := format('select b.班级,a.学生姓名,b.班主任,a.学生电话 from 表2 a inner join 表1 b on a.班级 =%d',[strtoint(Edit1.text)]);
    ……


阁下代码植入后,无法通过运行。

#6


你的例子,太乱了
 一(1)班        陈XX         蔡XX
 一(1)班        陆XX         伍XX 
班主任和班级都对不上,想人家帮你,不要太懒了,其实也是很简单的select语句

#7


关联 关键字,查询

#8


SELECT 表2.ID, 表1.班级, 表1.班主任, 表2.姓名
FROM 表2 LEFT JOIN 表1 ON 表2.班级 = 表1.ID where 表2.ID='+QuotedStr(edit1.text);
具体SELECT自己看着添加,已测试可以显示

#9


运行提示表达式不符

#10


引用 9 楼 aa20000 的回复:
运行提示表达式不符
把具体代码扔出来看看呗

#1


select b.班级,a.学生姓名,b.班主任,a.学生电话 from 表2 a inner join 表1 b on a.班级 = b.ID

#2


这样不行,我如何输入条件进行查询??
ID= Edit1.text ?????

#3


大致情况等于一个是类别表(两个字段,一个是分类ID,另一个是分类名称),一个产品表(含有分类ID,不是分类名称),产品表里面的产品类别其实就是类别表的分类ID,当通过输入产品ID查询,能把产品以及产品的类别名称查出,这样能实现吗?

#4


引用 2 楼 aa20000 的回复:
这样不行,我如何输入条件进行查询??
ID= Edit1.text ?????


qry.sql.text := format('select b.班级,a.学生姓名,b.班主任,a.学生电话 from 表2 a inner join 表1 b on a.班级 =%d',[strtoint(Edit1.text)]);

#5


引用 4 楼 simonhehe 的回复:
引用 2 楼 aa20000 的回复:这样不行,我如何输入条件进行查询??
ID= Edit1.text ?????

qry.sql.text := format('select b.班级,a.学生姓名,b.班主任,a.学生电话 from 表2 a inner join 表1 b on a.班级 =%d',[strtoint(Edit1.text)]);
    ……


阁下代码植入后,无法通过运行。

#6


你的例子,太乱了
 一(1)班        陈XX         蔡XX
 一(1)班        陆XX         伍XX 
班主任和班级都对不上,想人家帮你,不要太懒了,其实也是很简单的select语句

#7


关联 关键字,查询

#8


SELECT 表2.ID, 表1.班级, 表1.班主任, 表2.姓名
FROM 表2 LEFT JOIN 表1 ON 表2.班级 = 表1.ID where 表2.ID='+QuotedStr(edit1.text);
具体SELECT自己看着添加,已测试可以显示

#9


运行提示表达式不符

#10


引用 9 楼 aa20000 的回复:
运行提示表达式不符
把具体代码扔出来看看呗