查询组合3个表

时间:2014-04-10 20:04:37

标签: sql postgresql join

我坚持学校的项目。我们有3个表:

filteredtweets(Place, SoortOV, Comment, Time, Date), 
rooster(Lesid, Timestart, Timeend), 
student(studentid, woonplaats, vervoersmiddel)

我们想要一个带有这个select语句的列表,但我猜错了:

SELECT student.studentid, student.woonplaats, rooster.Lesid, 
filteredtweets.SoortOV, filteredtweets.Date, filteredtweets.Comment

我们需要根据2个WHERE子句获得结果:

WHERE filteredtweets.Place = student.woonplaats
WHERE filteredtweets.Time [is 30 minutes in range of] rooster.Timestart

Here is the screenshot of our database in PostgreSQL.

2 个答案:

答案 0 :(得分:0)

好像你可以使用介绍性的SQL课程。

看起来您的数据库设计已完全关闭。为了做任何有用的事情,你需要一些链接表格的方法。查看概念Primary KeyForeign Key

我在猜测 - 我不知道,因为你没有说明你需要的东西 - 你正在寻找类似下面的查询。对于此查询,我假设存在一个表student_les,它将student链接到rooster,而且过滤的网格有一列studentid,以便我们知道哪位学生发送了这条推文。

不幸的是,您指定的WHERE条款似乎没有任何意义,所以我将它们排除在外。同样,你没有说明你需要什么,所以我无法肯定地说。

SELECT student.studentid, student.woonplaats, rooster.Lesid, 
filteredtweets.SoortOV, filteredtweets.Date, filteredtweets.Comment
FROM student, rooster, filteredTweets, student_les
WHERE student.lesId = student_Les.lesId
AND student_les.lesId = rooster.lesId
AND filteredtweets.studentid = student.studentid

答案 1 :(得分:0)

您可以使用此

long m = murmur(x)
int hash = (int) (m >> 32);
int add = (int) m;
for (int i = 0; i < k; i++) {
    ... test / set the bit depending on "hash" ...
    hash += add;
}