Home > Backend Development > PHP Tutorial > 请教 两个表关联查询

请教 两个表关联查询

WBOY
Release: 2016-06-23 13:47:17
Original
985 people have browsed it

               function details($id){ 
  $query = $this->db->query("select t1.gradename, t2.* from grade as t1,student as t2 where studentid = '$id' and t2.gradeid = t1.gradeid ");
return $query->result();
}

有两个表,student表  和grade 表,调用方法传递过来id变量用于查询指定学号的学生信息,现在请教一下,我想查询sutdent的所有字段值和gradename的值。
由于student和grade是外键关联关系student表的gradeid和grade表的gradeid一样,  gradename存在grade表里。

我写语句是错的,执行不了,请大家伙帮一下忙,谢谢。


回复讨论(解决方案)

报错信息是什么?sql没看出问题。。。

select s.*, g.gradename from student as s left join grade as g on s.gradeid = g.gradeid where s.studentid = $id




报错信息是什么?sql没看出问题。。。



#1052 - Column 'studentid' in where clause is ambiguous

wander_wind  写的正确,可我不明白我的为什么错了

Column 'studentid' in where clause is ambiguous 
在where子句中的 studentid 列是含糊的。

在多表查询中,列名带上它的前缀是必须的,否则MySQL分不清楚。

select t1.gradename, t2.* from grade as t1,student as t2 where  t1.studentid = '$id' and t2.gradeid = t1.gradeid

wander_wind  写的正确,可我不明白我的为什么错了


这个报错最常见的原因就是,关联的表中相同的字段导致的,像楼上说的那样加个表别名做前缀
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template