以下是我的学生和批处理表
学生表
+-------------------------------------------------------+
|Sid|Name |Address |Gender|ContactNumber|DateOfBirth|
+-------------------------------------------------------+
| 1 |Mike |Delhi |Male | 986523245 |19900909 |
| 2 |John |Washington|Male | 78452356 |19900109 |
| 3 |Garima |Lucknow |Female| 78659432 |19910903 |
| 4 |Sparshi|Lucknow |Female| 789456135 |19910410 |
| 5 |Akash |Jaipur |Male | 965478312 |19850905 |
+-------------------------------------------------------+
批处理表
+-------------------------------------+
|Bid|BName |BStartDate| BCapacity |
+-------------------------------------+
| 1 |.NetBatch |2016-10-10| 30 |
| 2 |JavaBatch |2016-12-10| 20 |
| 3 |CCNABatch |2017-01-10| 15 |
+-------------------------------------+
它有很多关系。我正在创建另一个表来检索这些表中的数据。 我创建了另一个名为“StudentBatch”表的表
Create table Student_Batch
(Stdid int,
Batid int,
Std_JoiningDate date,
Foreign key(StdId) references Student(Sid),
Foreign key(BatId) references Batch(Bid))
+-----------------------------+
|Stdid |Batid|Std_JoiningDate|
+-----------------------------+
| 1 | 1 | 2017-01-10 |
| 2 | 2 | 2017-01-01 |
| 3 | 1 | 2017-01-20 |
| 4 | 3 | 2016-10-12 |
| 5 | 2 | 2016-09-10 |
+-----------------------------+
当我使用Join执行两个(Student和StudentBatch)表时,我没有获得所需的输出。 以下是我的询问:
Select S.Name,SB.Batid
from Student S
inner Join Student_Batch SB
on SB.Batid = S.Sid
输出是:
Name Batid
Mike 1
John 2
Mike 1
Garima 3
John 2
请纠正我在哪里做错了。
答案 0 :(得分:1)
希望,我理解你的问题。
我认为您正在与两个表中的批次ID和学生ID进行联接。但是,您必须在两个表(Student和Student_batch)中使用学生ID进行连接条件
请查看以下查询
Select S.Name,SB.Batid
from Student S
inner Join Student_Batch SB
on SB.Stdid = S.Sid -- changed