2016-05-15 2 views
-1

У меня есть три таблицы в MySQL, называемые users, user_academic_info, department_info, и я хочу получить результат присоединения к этим трем, чтобы получить такую ​​возможность поиска. Запрос, как показано ниже:mysql с php присоединением и поиском

SELECT full_name, user_id, email, mobile, dept_name 
FROM users, department_info 
WHERE dept_id = (select dept_id from user_academic_info where ainfo_id = user_id) 
AND full_name LIKE '%%' 
OR user_id LIKE '%%' 
OR email LIKE '%%' 
OR mobile LIKE '%%' 
OR dept_name LIKE '%%' 

Это показывает мне все пользователи со всеми отделами, где, как и в базе данных они принадлежат только одного отдела.

ответ

0

см mysql join

SELECT * FROM `users` AS `u` 
LEFT JOIN `user_academic_info` AS `ui` ON (
    `u`.`id` = `ui`.`user_id` 
) 
LEFT JOIN `department_info` AS `di` ON (
    `di`.`dept_id` =`ui`.`dept_id` 
) 
WHERE `u`.`full_name` LIKE '%%' 
OR `u`.`id` = 4 

выше запроса вы должны получить все поля из всех 3-х таблиц. Добавьте предложение WHERE и префикс полей с правильным именем таблицы.

+0

Я получаю все поля, но я хочу выполнить операцию поиска, поэтому я использовал несколько раз. –

+0

После того, как у вас есть все поля, вы можете добавить предложение WHERE, как раньше. Просто добавьте псевдоним таблицы перед полем – carmel

Смежные вопросы