gpt4 book ai didi

MySQL:在同一个表中获取与当前记录相关的记录

转载 作者:行者123 更新时间:2023-11-29 18:37:06 28 4
gpt4 key购买 nike

我正在尝试创建一个 MySQL 查询,它可以提取与搜索词匹配的所有项目。搜索词可以匹配 idtitle - 这我已经介绍过了。

我还希望它返回匹配项可能具有的任何子项。所以目前我正在使用以下查询:(搜索词:“父项目”)

SELECT * FROM `table` WHERE (`id` LIKE "%parent item%" OR `title` LIKE "%parent item%")

返回结果:

id     | title       | parent_id
------ | ----------- | ---------
15 | parent item | 0

但我现在陷入了试图弄清楚如何返回这样的东西的困境:

id     | title       | parent_id
------ | ----------- | ---------
15 | parent item | 0
34 | child item | 15
45 | child item | 15
58 | child item | 15

我正在使用 PDO 连接到数据库,因此据我所知,将其保持在一行是必要的..

有什么想法吗?

编辑:

经过相当多的尝试和错误后找到了解决方案。我在下面添加了我的答案,但这就是我最终得到的结果:

SELECT
t2.id AS id,
t2.title AS title,
t2.parent_id AS parent_id,
t1.title AS parent
FROM
`mc_sets` AS t1
RIGHT JOIN `mc_sets` AS t2
ON
t1.`id` = t2.`parent_id`
WHERE
t2.id LIKE "%parent item%" OR t1.title LIKE "%parent item%" OR t2.title LIKE "%parent item%"

输出:

id     | title       | parent_id | parent
------ | ----------- | --------- | ----------
15 | parent item | 0 | null
34 | child item | 15 | parent item
45 | child item | 15 | parent item
58 | child item | 15 | parent item

如果您对如何改进它有任何想法或不同的解决方案,请随时分享:D

最佳答案

如果您只是想将表连接在一起,也许可以尝试这样的操作。

SELECT p.Id, p.title, c.Id, c.title 
FROM Parent p, Children c
where p.Id LIKE "%parent item%" and
p.title LIKE "%parent item%" and
p.Id = c.ParentId

关于MySQL:在同一个表中获取与当前记录相关的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45200954/

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