首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多表MySQL查询

多表MySQL查询
EN

Stack Overflow用户
提问于 2012-06-08 02:40:23
回答 2查看 77关注 0票数 1

我有两个要同时查询的表。这两个表分别是uploads和audienceuploadassociation,所以事情是这样的,我的表中只有一个名为"ESL“的主题值,但是当我使用下面的SQL给我6条记录时,它将相同的数据重复6次。

代码语言:javascript
复制
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

下面是上传的表结构:

代码语言:javascript
复制
`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关联:

代码语言:javascript
复制
`audienceuploadassociation` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `upload_id` bigint(20) NOT NULL,
  `audiencename` varchar(254) NOT NULL,
  PRIMARY KEY (`id`)
) 

任何帮助都将不胜感激,提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-08 02:45:21

试试这个,使用GROUP BY:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2012-06-08 02:48:40

我看不到这两个表之间有任何关系。

uploads表定义中更改此设置

代码语言:javascript
复制
`member_school_id` int(11) NOT NULL DEFAULT 1

member_school_id中删除引号,因为它是一个INT字段。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10937865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档