2
我必须在数据库系统中进行研究,其中1:n关系的外键以逗号分隔列表的形式存储在单个列中。我想做一个查询,它打印出表A的每一行,其中的主键在表B的某个列中找到,但我不知道该怎么做。使用的数据库是oracle 10,如果有帮助的话。从单个列中的键列表中选择行
我必须在数据库系统中进行研究,其中1:n关系的外键以逗号分隔列表的形式存储在单个列中。我想做一个查询,它打印出表A的每一行,其中的主键在表B的某个列中找到,但我不知道该怎么做。使用的数据库是oracle 10,如果有帮助的话。从单个列中的键列表中选择行
你想使用INSTR函数。
Select A.*
FROM Foo A
Where A.ID IN
(SELECT A.ID FROM Bar B
Where INSTR(','||B.ConcatKeyField||',', ','||A.ID||`,', 1, 1) > 0)
一种非常原始,低效的,但简单的方法:
select ... from a, b
where instr(','||b.csvcol||',', ','||a.pk||',') > 0;
这对我有用,谢谢。 – Campfire 2011-06-16 11:46:43