我试图让站点搜索查询有效查询。我需要做的这个查询是我想根据搜索关键字(导师,研究所,科目,城市)选择四个主要列。当输入关键字时,查询必须检查这四个表并且需要在这四个类别下显示搜索结果。当显示搜索结果时,我需要添加一些值以产生有意义的搜索结果。例如:想在家教类导师显示作为搜索结果我需要显示他/她的姓名,城市,轮廓影像等创建多个表
它是这样的。
**Tutors**
tutor's name
city
profile image
**institutes**
institute's name
city
profile image
**subjects**
subject name
category name which belong this subject
**cities**
city name
district name which city belong etc...
我想它是这样的
$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 subject_name AS keyword, 'Subject' AS col, '' city_name, '' image_name, '' tutor_code FROM subjects
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 AS i
LEFT JOIN address a ON i.address_id = a.address_id
LEFT JOIN city c2 ON a.city_id = c2.city_id
LEFT JOIN institute_images ii ON i.institute_id = ii.institute_id AND ii.image_type = 'profile'
) s
WHERE keyword LIKE '%$queryString%'
LIMIT 10";
此查询工作约50%,但不能得到100%的工作。问题是不显示城市名称和概况图像在研究所类别下,不能显示城市和科目领域下的地区名称和类别名称。我也想这种查询是无效的,它是否浪费时间和资源?
谢谢。
谷歌翻译 – shnisaka 2013-02-10 05:43:12
你能[sqlfiddle(http://sqlfiddle.com)这个样本数据? – Orangecrush 2013-02-10 05:43:41
我可以在没有sqlfiddle的情况下获得解决方案吗?它的努力工作,我必须与更多的表工作。 – TNK 2013-02-10 05:47:16