gpt4 book ai didi

MySQL连接查询多个匹配条件

转载 作者:行者123 更新时间:2023-11-29 17:57:11 25 4
gpt4 key购买 nike

首先,我对模糊的标题表示歉意。如果有人有建议,我会更新它以更好地反射(reflect)我的问题,但我不知道如何对这个主题进行分类:

我有一些表存储某些设备的信息。表格的组织方式如下所示。 dev_prop 表有一些属性,它们也是组件。组件的属性存储在右侧的 comp_prop 表中。其他设备属性(例如“颜色”)没有任何与之关联的属性,只有一个值。

device       dev_prop                      comp_prop

name id name value id dev_id name value id dp_id

dv1 1 comp1 aaa 1 1 height 30cm 1 1
dv2 2 comp2 bbb 2 1 height 20cm 2 2
dv3 3 color red 3 1 height 20cm 3 4
comp1 ccc 4 2 weight 300g 4 2
comp2 aaa 5 2 weight 250g 5 4
color blue 6 2 weight 99g 6 1
color pink 7 3

我想查询数据库以选择所有高度为 20 厘米的组件,但我也想在单独的行中获取它们的重量属性。我检索的所有行都应该有一个 comp_prop.value,而且只有一个。

在上面的示例数据中,这适用于 id 为 2 和 4 的 dev_props,因为它们的高度为 20 厘米。我希望返回 4 行,其中两行代表高度,另外两行代表体重。

例如,我想检索如下行:

select device.name, dev_prop.name, dev_prop.value, dev_prop.id,
comp_prop.name, comp_prop.value from comp_prop
inner join dev_prop on comp_prop.dp_id=dev_prop.id and ......

device | dev_prop.name | dev_prop.value | dev_prop.id | comp_prop.name | comp_prop.value

dv1 comp2 bbb 2 height 20cm
dv1 comp2 bbb 2 weight 300g
dv2 comp1 ccc 4 height 20cm
dv2 comp1 ccc 4 weight 250g

最佳答案

想知道您是否考虑过嵌套查询?首先是巢穴:

SELECT dp_id FROM comp_prop WHERE height = '20cm'

这将为您提供具有特定属性的所有项目的 dp_id,可以将其插入条件,如下所示:

SELECT * FROM comp_prop WHERE dp_id IN (...)

然后将其他三个表连接在一起

关于MySQL连接查询多个匹配条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48694037/

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