-2

こんにちは皆さんこんにちはphp&mysqlの初心者ですここで3つのテーブルに参加していますが、クエリが正しくないため実行されていません。thresは構文エラーです。助けてください、私は感謝します:))

$result = mysql_query("SELECT   courses.id AS cid,
                                courses.title,
                                courses.subjectsid,
                                subjects.id AS sid,
                                subjects.subjectname,
                                requestrecord.status
                       FROM     courses,
                                subjects,
                                requestrecord
                       LEFTJOIN requestrecord
                         ON     courses.id = requestrecord.coursesid
                       WHERE   (courses.subjectsid = subjects.id )");
4

2 に答える 2

1

LEFT JOINの問題に加えて、requestrecordテーブルに2回結合しています(1回は暗黙のデカルト結合として)。試す:

$result = mysql_query("SELECT courses.id AS cid, courses.title, courses.subjectsid,  subjects.id AS sid, subjects.subjectname, requestrecord.status FROM courses JOIN subjects ON courses.subjectsid = subjects.id LEFT JOIN requestrecord ON courses.id = requestrecord.coursesid");
于 2012-10-29T18:53:22.277 に答える
0

暗黙的(WHERE句)結合と明示的結合の奇妙な組み合わせに加えて、。を使用した構文エラーがありますLEFT JOIN。明示的な結合のみを決定することをお勧めします。最終的に、メソッドはに対して2つの結合を処理しrequestrecordます。

SELECT
  courses.id AS cid, 
  courses.title, courses.subjectsid,  
  subjects.id AS sid, 
  subjects.subjectname, 
  requestrecord.status 
FROM 
  courses 
  /* Explicit inner join against `subjects` */
  JOIN subjects ON courses.subjectsid = subjects.id
  /* LEFT JOIN against requestrecord */
  LEFT JOIN requestrecord ON courses.id = requestrecord.coursesid
于 2012-10-29T18:53:45.133 に答える