当前位置:数据库 > MySQL >>

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

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,