2012-04-11 6 views
0

in mysql verbinden sich links Ich habe folgenden TabellenNatur verbinden und

  1. Fragen -> id, question_data, user_id
  2. Benutzer -> id, fname, lname
  3. question_connect-> id, question_id, user_id

Meine erste Anfrage war als

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

Aber hier möchte ich auf diese Frage von den Benutzern zählen, so habe ich versucht Abfrage folgende

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 

dies zeigt Fehler

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

SO können wir 1 Aufruf mit natürlichen machen verbinden und LEFT JOIN und wenn ja, wo ich falsch liege ..?

Antwort

1

Mit einer expliziten verbindet beitreten sollten Sie aussortieren:

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 

Du bist besser dran Angabe alle verbindet Versuchen Sie explizit zu vergessen, dass implizite Joins existieren.

+0

ja, funktioniert ...! :) Vielen Dank...! – KuKu

0

Ich glaube, Sie brauchen nicht die Anführungszeichen setzen auf die

ON questions.id = questions_connect.question_id