gpt4 book ai didi

SQL仅在特定行上连接表

转载 作者:行者123 更新时间:2023-12-02 07:39:27 26 4
gpt4 key购买 nike

我正在寻找关于如何做到这一点的心态的一般回应......我有一个表,其中有一列充满了可能的参数,一列充满了可能的值。我想将某种类型的所有参数连接到另一个表以进一步描述这些特定行,但不想将该表连接到不包含特定值的所有其他行。它看起来像这样:

Parameters  Values   Mammal
a 1
b 3
d cat Yes
c 4
d dog Yes
e 3
d fish No
f 2

我已经尝试了多种使用 Case 的方法,但是表格变得非常奇怪,并且根据其长度重复连接表格。有什么建议吗?

第二个表有两列,它在自己的动物列上连接到 parameter = "d" 的值列。当参数等于任何其他值时,它根本不显示。任何建议将不胜感激! (如果您需要了解,我正在使用 Cache SQL。不过,我更愿意对技术进行一般性解释,这样会更有帮助。)

编辑:抱歉,这里是两个单独的表:

      Table 1:                                   Table 2:

Parameters Values Animal Mammal
a 1 cat yes
b 3 dog yes
d cat snake no
c 4 fish no
d dog rat yes
e 3 hamster yes
d fish
f 2

最佳答案

听起来您当前的查询正在使用 INNER JOIN,它只会包含两个表中匹配的记录。您需要使用 LEFT JOIN,它将生成 table1 中的所有记录以及 table2 中的匹配记录。如果 table1 中没有匹配项,则缺失的一侧将为空:

select t1.parameters,
t1.value,
case when t2.mammal is null then '' else t2.mammal end Mammal
from table1 t1
left join table2 t2
on t1.value = t2.animal

参见 SQL Fiddle with Demo

如果您在学习 JOIN 语法方面需要帮助,可以阅读一篇很棒的文章:

A Visual Explanation of SQL Joins

关于SQL仅在特定行上连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12630802/

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