gpt4 book ai didi

mysql内连接3个表和联合

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

我习惯用 sparql 进行查询,但我必须用 mysql 来做这个查询,我真的不知道语法。我有这三个表:

产品:

    id o
1 p1
2 p2

规范:

    id o
3 sp1
4 sp2

来源:

    id o
1 s1
3 s1
2 s2
4 s2

正如我们所见,产品和规范可以与源不同的 id 连接,所以我想我必须进行 2 个选择,在源 > 产品和源 > 规范之间进行 2 个内部联接,并在两个选择之间进行一个内部联接:

      SELECT * FROM
(
SELECT pt.o as po, st.id as psID, st.o as pso
FROM source_test st
inner join products_test pt on st.id = pt.id
) x INNER JOIN
(
SELECT st2.o as spo, st1.id as spsID,st1.o as spso
FROM source_test st1
inner join specification_test st2 on st1.id =st2.id
) y

这给出:

    po  psID    pso spo spsID   spso
p1 1 s1 sp1 3 s1
p2 2 s2 sp1 3 s1
p1 1 s1 sp2 4 s2
p2 2 s2 sp2 4 s2

现在我需要过滤具有相同来源(pso),(spso)的产品(po)和规范(spo)

我正在以正确的方式做事,什么是延续或一个好的查询:

    po  spo spso
p1 sp1 s1
p2 sp1 s2

提前致谢。

最佳答案

select p.o, s.o, so.o
from products p
left join specification s
left join source so on p.id=s.id and p.id = so.id;

关于mysql内连接3个表和联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35626548/

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