Искать между двумя таблицами SQL? - PullRequest
0 голосов
/ 27 февраля 2012

У меня есть две таблицы:

студент

Колонны

first_name
last_name

teacher_accounts

Колонны

fname
lname

У меня есть форма ввода, которая берет данные, введенные в поле ввода, и передает их через следующий запрос SQL:

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

Однако я хочу теперь присоединиться к таблице teacher_accounts, чтобы посмотреть, соответствует ли введенное имя тому, что введено в поле ввода. По сути, мне нужен оператор SQL, который сравнивает таблицу teacher_accounts и student с данными, введенными в поле ввода.

Спасибо за любую помощь!

UPDATE

Мне нужно упомянуть, что я вывожу эти данные с помощью 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 />";

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012
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, чтобы узнать, как подготовить операторы и безопасно передать значения с помощью заполнителей.

1 голос
/ 27 февраля 2012
SELECT * 
FROM (
SELECT
first_name AS `first`,
last_name AS `last`,
'student' AS `typeofaccount`
FROM Student
UNION
SELECT
fname AS `first`,
lname AS `last`,
'teacher' AS `typeofaccount`
FROM teacher_accounts
) AS u
WHERE 
first like '%$q%'
OR last like '%$q%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...