gpt4 book ai didi

sqlite - SQLite:选择所有给定颜色的名称

转载 作者:行者123 更新时间:2023-12-03 15:41:27 26 4
gpt4 key购买 nike

我有一个SQLite数据库,其中两个表如下所示:

ID    Name
1 Test1
2 Test2
3 Test3
4 Test4

ID Color
1 Blue
1 White
1 Red
2 Green
2 Red
4 Black


在第一个表中,ID是唯一的,第二个表列出了ID所具有的颜色,它可以是0到n种颜色。

现在,我想只选择一次所有具有一种或多种给定颜色的名称。可以说,我想让所有名称都与蓝色,白色和/或绿色相关联。结果集应具有ID 1和2。

我在这里完全迷路了,因为我通常不做任何SQL。我只是熟悉非常基本的SQL。我要做的是将表连接在一起,但是我不知道该怎么做,因为ID在第二个表中不是唯一的。如果结果集中有多种颜色可供选择,那么ID会在结果集中重复出现。

在此先感谢您的帮助。

最佳答案

您不需要加入。从子查询的颜色表中获取ID列表,并使用in子句从测试表中获取名称:

sqlite> select * from tests where id in
(select id from colors where name in ('Blue', 'White', 'Green'));
1|Test1
2|Test2


在子查询中重复项无关紧要,但是如果希望该列表在其他上下文中没有重复项,则可以使用 distinct

关于sqlite - SQLite:选择所有给定颜色的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31625732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com