2012-04-11 84 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