我有两个表:
学生
列
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。