1

MySqlデータベースにはAM_COURSEその中にテーブルがあります

cId      CourseName   course_desc
  101          java        sometext...
  102          mysql       sometext....
   :

AM_USERその中で

 uid   name 
1001  Ram
1002  pavan

AM_INTERその中で

  id   uid     cid
  1    1001    101
  2    1001    102
  3    1002    101 

AM_TIMETABLEその中のテーブル

UserId        Date_Time
 101        2012-08-08 04:00:00 
 102        2012-08-15 10:00:00
 103        2012-08-18 09:00:00
 104        2012-08-24 05:00:00

私の質問は、開始日と終了日を渡してからCourseName、クエリを記述した方法でuserId、name、coursename、course_descなどの詳細を取得したいということです。

    SELECT  a.cid,a.course_desc,c.name 
    FROM  
    AM_COURSE a,AM_USER c INNER JOIN AM_TIMETABLE b ON a.S_ID = b.COURSE_ID WHERE
    a.Name = 'java' 
    AND 
    b.Date_Time BETWEEN '2012-08-07 00:00:00' AND '2012-08-20 00:00:00'

しかし、私はエラーが発生しています please help

4

2 に答える 2

1

INNER JOINキーワードは、両方のテーブルに少なくとも1つの一致がある場合に行を返します。

MySQLINNERJOIN句

MySQL INNER JOIN句は、あるテーブルの行を他のテーブルの行と照合し、両方のテーブルの列を含む行をクエリできるようにします。

MySQL INNER JOIN句は、SELECTステートメントのオプション部分です。FROM句の直後に表示されます。

MySQL INNER JOIN句を使用する前に、次の基準を指定する必要があります。

まず、FROM句に表示されるメインテーブルを指定する必要があります。次に、INNER JOIN句に表示される、メインテーブルと結合するテーブルを指定する必要があります。理論的には、多くのテーブルを持つテーブルを結合できます。ただし、クエリのパフォーマンスを向上させるには、結合するテーブルの数を制限する必要があります。第三に、結合条件または結合述部を指定する必要があります。結合条件は、INNERJOIN句のキーワードONの後に表示されます。結合条件は、メインテーブルと他のテーブルの間で行を照合するためのルールです。

SELECT  c.cid, c.course_desc, user.name FROM AM_COURSE c
INNER JOIN AM_INTER inter on inter.cid = c.cid
INNER JOIN AM_USER user on user.uid = inter.uid
INNER JOIN AM_TIMETABLE tt ON inter.cid = tt.UserId
WHERE c.Name = 'coursename' AND tt.Date_Time BETWEEN '2011-08-12' AND '2012-08-12'
于 2013-04-16T10:41:17.453 に答える
0

試す

SELECT  course.cid, course.course_desc, user.name
FROM AM_COURSE course
INNER JOIN AM_INTER inter on inter.cid = course.cid
INNER JOIN AM_USER user on user.uid = inter.uid
INNER JOIN AM_TIMETABLE tt ON inter.cid = tt.UserId
WHERE course.Name = 'java' 
AND tt.Date_Time BETWEEN '2012-08-07' AND '2012-08-20'
于 2012-08-06T13:18:37.450 に答える