我有两张桌子,
Table1:
id, int1, int2, int3
john,1,2,4
tim,2,3,4
pete,1,3,4
Table2:
integer,blob
1,wins
2,backtickle
3,text
4,whatever
我想要使用的查询给出了我想从table2获取与table1中每个整数列关联的blob数据的id。
我可以在这里使用的具体查询是什么?
我正在寻找的样本结果将是:
搜索John返回“wins”,“backtickle”,“whatever”
搜索皮特返回“胜利”,“文字”,“无论什么”
我认为它与外键有关,但不确定...初学者水平请!使用1个表,它将是SELECT * FROM table1 WHERE id =“........”,但不确定我现在给出的设置。
答案 0 :(得分:1)
数据库的结构看起来并不理想。你限制自己每人3件物品,并且你使用列而不是行来列出它们。您在数据中实际拥有的是Table1和Table2之间的多对多关系。我建议使用三个表:
Persons:
name, personid
john,1
tim,2
pete,3
PersonBlobs:
personid, blobid
1,1
1,2
1,4
2,2
2,3
2,4
3,1
3,3
3,4
Blobs:
blobid,blob
1,wins
2,backtickle
3,text
4,whatever
PersonBlobs会为您提供人与Blob之间的多对多链接。
然后查询变为:
select Blobs.blob
from Blobs inner join PersonBlobs on Blobs.blobid = PersonBlobs.blobid
inner join Persons on PersonBlobs.personid = Persons.personid
where Persons.name = 'John'