我有两个表:

学生



first_name
last_name


教师帐户



fname
lname


我有一个输入表单,该表单接受输入到输入字段中的数据,并将其通过以下SQL查询传递:

select * from student WHERE first_name like '%$q%' OR last_name like '%$q%'


但是,我现在想加入Teacher_accounts表,以查看输入的名称是否可能与在输入字段中输入的名称匹配。本质上,我需要一个SQL语句,根据输入到输入字段中的数据来检查Teacher_accounts和Student表。

谢谢你的帮助!

更新

我需要提及的是,我正在使用mysql_fetch_array输出此数据,因此我需要一种方法来使脚本辨别是否需要从教师列或学生列中提取数据。

    while($row=mysql_fetch_array($result)) {
echo "<a href='?fname=".$row['first_name']."&lname=".$row['last_name']."'>".$row['first_name']." ".$row['last_name']."<br />";

最佳答案

SELECT first_name, last_name, 'student' as `type`
FROM   students
WHERE  first_name like '%<your string>%'
   OR  last_name  like '%<your string>%'

UNION

SELECT fname, lname, 'teacher' as `type`
FROM   teacher_accounts
WHERE  fname like '%<your string>%'
   OR  lname like '%<your string>%'


有关如何使用占位符安全地准备语句和传递值的信息,请参考:http://dev.mysql.com/doc/refman/5.6/en/sql-syntax-prepared-statements.html

09-25 21:13