gpt4 book ai didi

mysql - 是否可以将详细联接分配给结果集中它自己的单元格?

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

所以我有一个相当简单的查询,例如:

SELECT * FROM tbl_product
LEFT JOIN tbl_product_subject ON tbl_product_subject.product_id = tbl_product.id
WHERE tbl_product.type = 5
ORDER BY tbl_product.id DEC

这种方法有效,无论 tbl_product_subject 中有多少行,都可以通过 tbl_product_subject 字段的重复索引来索引。

但这不是我想要的。

我希望每个 tbl_product 字段只有一行,并在该记录中迭代 tbl_product_subject 详细信息联接,但是,为了让事情变得更困难,而不是作为逗号单个字段中的分隔列表。

相反,我希望详细连接的每个结果都有一个字段,例如:

tbl_product.id
123
tbl_product_subject.id1
1
tbl_product_subject.id2
2
tbl_product_subject.id3
3
tbl_product_subject.id4
4

这可能吗?

最佳答案

正如评论中已经提到的,您可以通过使用 union (all) 来实现所需的结果:

(
SELECT
p.id AS id,
p.id AS pid
FROM
tbl_product p
)
UNION ALL
(
SELECT
s.id AS id,
s.product_id AS pid
FROM
tbl_product_subject s
)
ORDER BY pid, id;
<小时/>

如果你愿意,你还可以添加一些“标签”(我用它们来“调试”):

(
SELECT
CONCAT("prod: ", p.id) AS id,
p.id AS pid
FROM
tbl_product p
)
UNION ALL
(
SELECT
CONCAT("sub: ", s.id) as id,
s.product_id AS pid
FROM
tbl_product_subject s
)
ORDER BY pid, id;

关于mysql - 是否可以将详细联接分配给结果集中它自己的单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29649888/

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