MYSQL+PHP 数据库中两张表A,B的关联问题
MYSQL+PHP
数据库用有两张表A,B
A表字段:学生ID 学生姓名 论文题目 导师ID
B表字段:导师ID 导师姓名
两张表中导师ID字段完全相同,想以此为关联
现需要根据学生ID、学生姓名、论文题目、导师姓名进行多条件同时查询,然后输出结果:学生ID 学生姓名 导师姓名 论文题目
以导师查询的时候检索的是导师ID还是导师姓名呢?怎样使两张表的导师ID进行关联?
本来是一张表的内容,没有导师ID这个字段,后来老师说放在一张表里的话,导师姓名
重复太多,所以再建一张表放导师ID和姓名,本人初学者,本来一张表的时候已经实现检索功能了,现在要求这样改,请指路!
补充:目前一张表的时候多条件检索是这样
if(isset($_POST["id"]) && ($_POST["id"] != "")){
$id = mysql_escape_string($_POST["id"]);
$id = str_replace("%", "\%", $id);
if ($condition == ""){
$condition = "WHERE sid LIKE \"%".$id."%\"";
} else{
$condition .= "AND sid LIKE \"%".$id."%\"";
}
}
$sql = "SELECT * FROM data ".$condition."
只写了学生ID:sid 的$condition,还有3个。
data表:sid sname title tid s:学生 t:导师
teacher表:tid tname
检索四个条件:sid sname title tid 要求可以单个或四个条件同时匹配
输出结果:sid sname title tname
够详细了吗? 我没具体学过数据库和PHP,只看了两天书,根据要求找了代码改一改,所以请说的详细一点。
答案:select `a`.*, `b`.`导师姓名` WHERE `a`.`导师ID` = `b`.`导师ID`
A表中导师ID为索引
B表中导师ID为主键
这样都不明白。。无奈了
你把你数据库里字段名写出来,别用文字代替了
另外还有要检索什么东西
直接写好sql给你就是了
if ($condition == ""){
$condition = "WHERE sid LIKE \"%".$id."%\"";
} else{
$condition .= "AND sid LIKE \"%".$id."%\"";
}
改成
condition = " AND sid LIKE \"%".$id."%\"";
然后SQL该下
$sql = 'select `data`.*, `teacher`.`tname` FROM `data`, `teacher` WHERE `data`.`tid` = `teacher`.`tid`' . $condition
就这样
其他:select * from a join b on a.导师ID=b.导师ID where b.导师姓名 like '%%' or a.论文题目 like '%%'
上一个:我在服务器上可以通过mysql命令行登陆并查询数据库,但phpcms,ecshop都说mysql没有安装.
下一个:链接mysql数据库时出现fatal error encountered during command execution