2012-06-06 31 views
0

包含团队ID和团队名称的团队表,然后包含来自测验的数据和来自问卷的数据的另外两个表。从3个表中获取ID

我需要得到已经完成测验(所以有一些测验数据)和问卷(所以有一些问卷数据)的团队ID列表,但我不明白如何加入3表得到我需要的ID列表。

任何指针大受接待

+0

http://en.wikipedia.org/wiki/Join_(SQL)? – gtiwari333

+2

请告诉我们您的三个表格结构。 – manurajhada

回答

1

正如你在上评论说..

我实际上想要在任一数据表中的团队ID。 如何修改查询? - 戴夫

试试这个,这是我理解你的话..

select teamID,teamName from team where teamID in (select teamID from quiz) or teamID in (select teamID from questionnaire); 
+0

谢谢你,我结束了使用这种方法,因为它给了我正确的结果,如果任何表是空的。 – Dave

0

假设你有内部测验和问卷调查表团队表的一些参考,您将需要一个加入这样 - 当你做team.id=quiz.team_id AND team.id=questionnaire.team_id只有那些球队

SELECT team.id, team.name 
from 
team, quiz, questionnaire 
where 
team.id=quiz.team_id 
AND team.id=questionnaire.team_id 

结果中会显示测验和问卷表中的ID。


如果你需要它存在于两种表测验或问卷调查的团队ID,那么你将取代ANDOR -

SELECT team.id, team.name 
from 
team, quiz, questionnaire 
where 
team.id=quiz.team_id 
OR team.id=questionnaire.team_id 
+1

你怎么知道其他2个表包含团队ID? – giorashc

+0

@giorashc,与你同意。大声笑.. – manurajhada

+0

这是假设测验和问卷表有参考。 OP的第二句话说,测验和问卷表都有团队相关的数据。我的假设可能是错误的,有可能这个结构使用了一些交叉引用表。假设在测验和问卷中已经有一些参考,这只是一个可能的答案。编辑我的答案 – Kshitij