2011-03-30 38 views
0
混合对阵与JOINO

是否有可能通过以下一个扩大这个查询在MySQL

SELECT id, name, MATCH (name) AGAINST (%s) 
AS score FROM mydb.authors WHERE MATCH (name) AGAINST (%s) 

SELECT authors.id, papers.id FROM `mydb`.`auth2paper` 
JOIN `mydb`.`papers` ON `mydb`.`auth2paper`.paper_id = `mydb`.`papers`.id 
JOIN `mydb`.`authors` ON `mydb`.`auth2paper`.auth_id = `mydb`.`authors`.id 

回答

2

没有理由不。正常情况下,只需在WHERE中使用MATCH即可。

SELECT authors.id, papers.id, MATCH (`mydb`.`authors`.name) AGAINST (%s) Score 
FROM `mydb`.`auth2paper` 
JOIN `mydb`.`papers` ON `mydb`.`auth2paper`.paper_id = `mydb`.`papers`.id 
JOIN `mydb`.`authors` ON `mydb`.`auth2paper`.auth_id = `mydb`.`authors`.id 
WHERE MATCH (`mydb`.`authors`.name) AGAINST (%s) 
+0

感谢您的回复。这个wuery真的相当于两个查询obove?你将如何添加分数?我需要在我的代码中进一步使用它。 – Aufwind 2011-03-30 16:08:01

+0

@aufwind - 我的歉意,你确实需要它在select子句中 – RichardTheKiwi 2011-03-30 16:11:37