1

同時にクエリしたいテーブルが2つあります。テーブルはuploadsとaudienceuploadassociationであるため、テーブルには「ESL」というトピック値が1つしかありませんが、以下のSQLを使用すると6つのレコードが得られ、同じデータが6回繰り返されます。

SELECT uploads.*, audienceuploadassociation.*
FROM   uploads
  JOIN audienceuploadassociation
    ON uploads.upload_id = audienceuploadassociation.upload_id
 WHERE uploads.member_id = '1'
   AND uploads.member_school_id='1'
   AND subject = 'ESL'
   AND topic = 'Poetry'
LIMIT  20

アップロードのテーブル構造は次のとおりです。

`uploads` (
  `upload_id` int(11) NOT NULL AUTO_INCREMENT,
  `member_id` varchar(255) NOT NULL,
  `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `upload_name` text NOT NULL,
  `upload_title` varchar(255) NOT NULL,
  `upload_type` varchar(100) NOT NULL,
  `subject` varchar(50) NOT NULL,
  `topic` longtext NOT NULL,
  `year` int(100) DEFAULT NULL,
  `keywords` varchar(255) NOT NULL,
  `description` longtext NOT NULL,
  `status` enum('Finished','Work in progress','Blank template') NOT NULL DEFAULT 'Finished',
  `test_name` varchar(255) DEFAULT NULL,
  `firstname` varchar(255) NOT NULL,
  `lastname` varchar(255) NOT NULL,
  `member_display_name` varchar(255) NOT NULL,
  `member_school_id` int(11) NOT NULL DEFAULT '1',
  PRIMARY KEY (`upload_id`)
) 

およびaudienceuploadassociationの場合:

`audienceuploadassociation` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `upload_id` bigint(20) NOT NULL,
  `audiencename` varchar(254) NOT NULL,
  PRIMARY KEY (`id`)
) 

よろしくお願いします。

4

2 に答える 2

0

これら 2 つのテーブルの間に関係はありません。

uploadsテーブル定義でこれを変更します

`member_school_id` int(11) NOT NULL DEFAULT 1

フィールドmember_school_idであるため、引用符を削除してください。INT

SELECT uploads.*, audienceuploadassociation.*
FROM   uploads
  JOIN audienceuploadassociation
    ON uploads.upload_id = audienceuploadassociation.upload_id
 WHERE uploads.member_id = '1'
   AND uploads.member_school_id=1
   AND uploads.subject = 'ESL'
   AND uploads.topic = 'Poetry'
LIMIT  20
于 2012-06-07T18:48:39.997 に答える
0

これを試して、GROUP BYを使用してください:

SELECT uploads.*, audienceuploadassociation.*
FROM   uploads
  JOIN audienceuploadassociation
    ON uploads.upload_id = audienceuploadassociation.upload_id
 WHERE uploads.member_id = '1'
   AND uploads.member_school_id='1'
   AND subject = 'ESL'
   AND topic = 'Poetry'
GROUP BY uploads.upload_id
LIMIT  20
于 2012-06-07T18:45:20.533 に答える