SELECT keyword
FROM
(
SELECT tutor_Name AS keyword FROM t
UNION
SELECT subject_name AS keyword FROM s
UNION
SELECT institute_name AS keyword FROM i
) s
WHERE keyword LIKE '%$queryString%'
LIMIT 10
此查询根据关键字显示包含主题、导师姓名、城市的列表。现在我需要用更多的值修改这个查询。例如,列表中有一个导师姓名,我想显示他/她的当前城市、他/她的个人资料图片等。所以我需要从我的城市表、地址表、tutorImages 表中获取这些值。所以任何人都可以帮我做这个查询?
最佳答案
试试这个它会起作用:
$q = "SELECT keyword, col, city_name, image_name, tutor_code
FROM (
SELECT tutor_name AS keyword, 'Tutors' AS col, IFNULL(c1.city_name, '') city_name, IFNULL(ti.image_name, '') image_name, tutor_code FROM tutors AS t
LEFT JOIN address a ON t.address_id = a.address_id
LEFT JOIN city c1 ON a.city_id = c1.city_id
LEFT JOIN tutor_images ti ON t.tutor_id = ti.tutor_id and ti.image_type = 'profile'
UNION
SELECT subjects AS keyword, 'Subject' AS col, '' city_name, '' image_name, '' tutor_code FROM subject
UNION
SELECT city_name AS keyword, 'City' AS col, '' city_name, '' image_name, '' tutor_code FROM city
UNION
SELECT institute_name AS keyword, 'Institute' AS col, '' city_name, '' image_name, '' tutor_code FROM institutes
) s
WHERE keyword LIKE '%$queryString%'
LIMIT 10";
关于mysql - 使用多个表进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13579189/