2012-12-10 181 views
-2

我已经创建了一个数据库,我试图从多个表中提取信息。我期待不超过3个结果,我以15结束!MYSQL查询问题

在15个结果中,它也复制了数据并且给出了错误的数据!

确定这里是语句升跑

select * 
from [Student, Accomadation_Application 
where lname = 'Torrance' 
    and accomodationType = 'flat' 

任何帮助将是巨大的不知道如果我提供了足够的信息..

+1

了解数据库模式和内容将有所帮助。 – moonwave99

+0

你有任何独特的专栏吗?因为如果你得到15个结果而不是3个,很可能你的db表没有'UNIQUE'约束。 – wkoot

+0

我刚刚在表单 –

回答

1

您需要使用外键的两个表进行连接。像这样的查询将为您提供两个表中所有行的可能组合。

像Student.key = Accomadation_Application.fk - 或其他方式。

+0

l确实已使用学生表bannerNo中的主键将学生表与学生表相关联。这就是accomadation_application中的FK,它试图提取只有姓氏的人的记录,这个人的姓名是瓦隆,但它重复所有3个姓Torrance的姓氏,然后给我其他人的数据,旁边有托兰斯的名字? ? –

2

这张表之间有一些关系吗? 您应该使用类似

SELECT * 
FROM student 
    INNER JOIN Accomadation_Application ON Accomadation_Application.studentId = student.id 
WHERE lname = 'Torrance' and accomodationType = 'flat' 
1

您必须将表格连接在一起。

SELECT * FROM 学生小号 加入accomadation_application一个 上 a.iname = s.iname 其中 s.iname = '托伦斯' 和a.accomodationType = '平'

(语法可能需要转换,因为这为t SQL)

1

猜测基于你的表可能含有......

SELECT * 
FROM Student AS s 
JOIN Accomadation_Application AS a ON s.bannerNO = a.bannerNo 
WHERE s.lname = 'Torrance' AND a.accomodationType = "flat"; 
+0

学生表上的bannerNO,fName,lName,DOB,课程Acomadation_Application表包含applicationRef,accomadtionType,durationofStay,applcationDate,bannerNo与bannerNo是fk –

+0

已更新!在我起床之前,我不应该写SQL查询! –