请随意对此发表评论,因为我是新手,对于如何构建此内容非常困惑。 我想创建一个有兴趣的人的数据库。我想记录他们的兴趣,然后看看人们有什么共同的兴趣并展示他们。
我有3个表:Person,Interest,InterestType
人是一张人 利息是一个人可以拥有的利益。 InterestType是兴趣的名称,比如滑雪或骑自行车。 (我将它分开是因为我希望所有人都使用共同的利益排版)
我的设置如下:
personTable:id,name,interestID
interestTable:id,interestType,personID
interestType:id,name
如何获得具有相同兴趣的人员列表?
答案 0 :(得分:1)
我在Access中创建了一个简单的模型,但您应该能够将其“转换”为SQLite而不会出现太多问题。
假设:
PersonTable
personId Name
1 Paolo
2 Carla
3 Angelo
4 Franco
5 John
6 Lisa
InterestType
interestId Name
1 Calligraphy
2 Karate
3 Chess
4 Movies
5 Hiking
InterestTable
interestId personId
1 1
2 1
3 1
2 2
3 2
4 2
1 3
2 3
1 5
按兴趣名称排序,然后按人名称排序的简单查询应该可以解决问题:
SELECT interestType.Name, personTable.Name
FROM personTable INNER JOIN
(interestType INNER JOIN interestTable ON
interestType.interestId=interestTable.interestId)
ON personTable.personId=interestTable.personId
ORDER BY 1, 2;
将返回:
interestType.Name personTable.Name
Calligraphy Angelo
Calligraphy John
Calligraphy Paolo
Chess Carla
Chess Paolo
Karate Angelo
Karate Carla
Karate Paolo
Movies Carla
如果您想查找特定兴趣,只需添加where子句:
SELECT interestType.Name, personTable.Name
FROM personTable INNER JOIN
(interestType INNER JOIN interestTable ON interestType.interestId=interestTable.interestId)
ON personTable.personId=interestTable.personId
WHERE interestType.Name="Karate"
ORDER BY 1, 2;
interestType.Name personTable.Name
Karate Angelo
Karate Carla
Karate Paolo
答案 1 :(得分:0)
试试这个..
SELECT * FROM personTable pt
INNER JOIN interestTable it
ON pt.id = it.id
WHERE it.interestType = "theInterestType";