我在SQLite中有一个名为Clients
的表:
ID|名称|爱好|子爱好
-|-|
1|安妮|运动、时尚|鞋子、游泳
2|Max|进食,自动|甜点,汽车
我使用公用表表达式(with split() as
)拆分Hobbies
列:
ID|名称|爱好|子爱好
-|-|
1|安妮|运动|鞋子、游泳
1|安妮|时尚|鞋子、游泳
2|最大|吃|甜点、汽车
2|MAX|自动|甜品、汽车
现在我还想拆分Subhubbies
列,这可以使用CTE来完成。我想要的形式是(游泳是运动、鞋子-时尚、甜点-吃和汽车-自动的子集):
ID|名称|爱好|子爱好
-|-|
1|安妮|体育|游泳
1|安妮|时尚|鞋子
2|Max|进食|甜点
2|最大|自动|汽车
这张table上有很多客户、爱好和子爱好,所以我不想一一介绍。有没有什么办法可以拆分它们,并将它们放在合适的位置进行查询?
1条答案
按热度按时间pvcm50d11#
您需要定义业余爱好表:
无论如何,您都应该拥有这个表,因为否则您的客户端表将不会标准化。然后对CLIENTS/HOBBIES表运行以下查询:
根据您的数据,简单的
WHERE instr(c.SubHobbies, h.SubHobby)
也可能运行得很好。