2012-04-11 85 views
0

我有如下表自然连接和左连接在一起在MySQL

  1. 问题 - > ID,question_data邀请,USER_ID
  2. 用户 - > ID,FNAME,LNAME
  3. question_connect-> ID,question_id, USER_ID

我最初的查询结果如下

select questions.id, questions.question_data, users.id, users.fname from questions, users where questions.user_id = users.id limit 30 

但在这里,我想对这个问题的用户数,所以我尝试下面的查询

select questions.id, questions.question_data, users.id, users.fname, count(questions_connect.id) from questions, users LEFT JOIN questions_connect ON `questions`.`id` = `questions_connect`.`question_id` where questions.user_id = users.id group by `questions_connect`.`id` limit 30 

这显示错误

Unknown column 'questions.id' in 'on clause' 

SO才能让1个通话与自然连接和左连接和如果是的话,我去哪里错了..?

回答

1

使用显式连接应排在你出去:

select questions.id, questions.question_data, users.id, users.fname, count(questions_connect.id) 
from questions 
join users on questions.user_id = users.id 
left join questions_connect on `questions`.`id` = `questions_connect`.`question_id` 
group by `questions_connect`.`id` 
limit 30 

你最好确定你所有的连接显式地,尽量忘记存在隐式连接。

+0

是的,工作...! :) 谢谢...! – KuKu 2012-04-11 05:58:25

0

我相信你也不需要把报价上加入

ON questions.id = questions_connect.question_id