0

我的名字是 Srinivas 我正在使用 mysql 作为数据库在 php 中做一个学校管理软件。

请任何人帮助我,我一直坚持我的 sql 查询。

我会解释我的问题。我有两张桌子,一张是学生,另一张是分数

当我执行 select 语句时,每个表都有 5 行,两个表在每个结果中都有 5 条记录。这是我写的选择语句

对于表学生: SELECT ta.rollno, ta.StdNm FROM tbl_student ta WHERE ta.Cls =22

对于表标记:SELECT tc.telugu FROM tbl_marks tc WHERE tc.Cid =22

在每个语句中都产生 5 条记录,但是当我将它们组合起来时,它会产生 25 条记录而不是显示 5 条记录

这是组合的 sql 选择:

SELECT DISTINCT tc.rollno, tc.english, ta.rollno, ta.StdNm FROM tbl_marks tc, tbl_student ta WHERE tc.Cid =22 AND ta.Cls =22

请任何人告诉我我在这个声明中做错了什么

4

5 回答 5

2

尝试这个...

SELECT DISTINCT tc.rollno, tc.english, ta.rollno, ta.StdNm 
FROM tbl_marks tc, tbl_student ta 
WHERE tc.Cid =22 AND ta.Cls =22 AND ta.rollno=tc.rollno;
于 2013-07-05T09:08:46.630 回答
0

尝试这个:

SELECT  
    tc.rollno, 
    tc.english, 
    ta.rollno, 
    ta.StdNm 
FROM 
    tbl_marks tc
LEFT JOIN tbl_student ta 
    ON ta.Cls = tc.Cid
WHERE 
    tc.Cid =22 
于 2013-07-05T09:05:19.070 回答
0

使用Joins. 您的查询会生成单个查询的叉积,从而产生 25 个结果。

于 2013-07-05T09:06:14.123 回答
0
SELECT tc.rollno, tc.english, ta.rollno, ta.StdNm 
FROM tbl_marks tc
inner join tbl_student ta on ta.Cls = tc.Cid
WHERE ta.Cls =22
于 2013-07-05T09:06:40.117 回答
0

您需要JOIN SQL 查询:试试这个:

SELECT tc.rollno, tc.english, ta.rollno, ta.StdNm 
FROM tbl_marks AS tc JOIN tbl_student AS ta ON tc.Cid = ta.Cls 
WHERE tc.Cid =22
于 2013-07-05T09:07:03.020 回答