需要您的帮助来创建一些oracle SQL查询,让我们首先来看一下我的表的设计
with open('images.txt', 'w') as text_file:
left_list = []
right_list = []
for folderName, subfolders, f in os.walk(root_folder):
for subfolder in subfolders:
if subfolder == 'image_02':
left_path = os.path.join(folderName, subfolder, 'data')
left_list = [f for f in sorted(os.listdir(left_path)) if
not f.startswith('.') and f.endswith('.png')]
elif subfolder == 'image_03':
right_path = os.path.join(folderName, subfolder, 'data')
right_list = [f for f in sorted(os.listdir(right_path)) if
not f.startswith('.') and f.endswith('.png')]
if len(left_list) != len(right_list):
print('ERROR: directory {} does not match with {}'.format(left_path, right_path))
continue
for left_file, right_file in zip(left_list, right_list):
text_file.write(
os.path.join(left_path, left_file) + " " + os.path.join(right_path, right_file) + "\n")
该组件包含许多物质,所以我创建了第三个表
Comp_Subs具有两个列Component table has two cols id(pk) and name
Substance table has two cols id(pk) and name
和comp_id(fk to Component)
,并且列在一起是唯一的。
给出一些物质的ID,创建一个查询以获取具有所有给定物质的所有组分
示例:给定这些物质1、2、3的ID,创建一个查询,该查询将检索具有所有选定物质的所有化合物。
输入:1,2,3
输出将一列包含这样的结果
给定示例的结果应返回comp1和comp2 因为comp1包含物质1、2和3 而且comp2还包含1、2和3
答案 0 :(得分:1)
使用 File f=new File("path to file");
Uri u=Uri.fromFile(f);
filePathCallback.onReceiveValue(new Uri[]{u});
和GROUP BY
:
Oracle 11g R2架构设置:
HAVING
查询1 :
CREATE TABLE Comp_Sub ( comp_id, sub_id ) AS
SELECT 1, 1 FROM DUAL UNION ALL
SELECT 1, 2 FROM DUAL UNION ALL
SELECT 1, 3 FROM DUAL UNION ALL
SELECT 2, 1 FROM DUAL UNION ALL
SELECT 2, 2 FROM DUAL UNION ALL
SELECT 2, 3 FROM DUAL UNION ALL
SELECT 2, 4 FROM DUAL UNION ALL
SELECT 3, 1 FROM DUAL UNION ALL
SELECT 3, 5 FROM DUAL UNION ALL
SELECT 3, 7 FROM DUAL;
Results :
SELECT comp_id
FROM comp_sub
WHERE sub_id IN ( 1, 2, 3 )
GROUP BY comp_id
HAVING COUNT( sub_id ) = 3
如果需要名称,则将结果添加到| COMP_ID |
|---------|
| 1 |
| 2 |
表中。
答案 1 :(得分:-1)
您可以通过选择comp_subs
记录,并按sub_id
分组所需的comp_id
来获得输出,如下所示:
select comp_id
from comp_subs
where subs_id in (1,2,3)
group by comp_id;