gpt4 book ai didi

mysql - 如何从多个表中搜索父内容?

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

表 - parent

+----+----------+--------------+----------+
| id | user_id | content_type | name |
+----+----------+--------------+----------+
| 1 | 10 | 1 | name - 1 |
| 2 | 12 | 2 | name - 2 |
+----+----------+--------------+----------+

content_type 可以是

1 = Single part(movies)
2 = Multi prt(serials, episode)

表 - 子项

+----+------------+--------------+--------------+-----------+
| id | parent_id | is_episode | episode_name | file_name |
+----+------------+--------------+--------------+-----------+
| 1 | 1 | 0 | NULL | movie.mp4 |
| 2 | 2 | 0 | NULL | zee.mp4 |
| 3 | 2 | 1 | cname-2 | lil-1.mp4 |
| 4 | 2 | 1 | child-2 | lil-2.mp4 |
+----+------------+--------------+--------------+-----------+

并且is_episode可以是:

0 = No
1 = Yes

注意:我跳过了一些其他字段

我的查询:

SELECT F.id,F.user_id,F.content_type,F.name,M.is_episode, M.episode_name, M.file_name 
FROM childs M,parents F
WHERE M.parent_id = F.id AND M.is_episode=0 AND
(F.name LIKE '%child%' OR M.episode_name LIKE '%child%' )

以上 MySQL 查询我得到 0 条记录。共有 1 条内容

我的搜索字符串基于 parents.namechilds.episode_name 应用,我想获取所有 is_episode=0 记录,如果我搜索 child-2 然后找到我当前记录的父内容。这是我的输出应该出现

+----+----------+----------------+----------+------------+--------------+-----------+
| id | user_id | content_type | name | is_episode | episode_name | file_name |
+----+----------+----------------+----------+------------+--------------+-----------+
| 2 | 12 | 2 | name - 2 | 0 | NULL | zee.mp4 |
+----+----------+----------------+----------+------------+--------------+-----------+

输出:

In above my  two tables my output should come following criterias

如果我按 name LIKE '%name%' 搜索,输出应该是

+----+----------+----------------+----------+------------+--------------+
| id | user_id | content_type | name | is_episode | episode_name |
+----+----------+----------------+----------+------------+--------------+
| 1 | 10 | 1 | name - 1 | 0 | NULL |
| 2 | 12 | 2 | name - 2 | 0 | NULL |
+----+----------+----------------+----------+------------+--------------+

如果我按 name LIKE '%cname%'name LIKE '%name - 2%'name LIKE '%child%'< 进行搜索 输出应该是

+----+----------+----------------+----------+------------+--------------+
| id | user_id | content_type | name | is_episode | episode_name |
+----+----------+----------------+----------+------------+--------------+
| 2 | 12 | 2 | name - 2 | 0 | NULL |
+----+----------+----------------+----------+------------+--------------+

如果我按 name LIKE '%name - 1%' 搜索,输出应该是

+----+----------+----------------+----------+------------+--------------+
| id | user_id | content_type | name | is_episode | episode_name |
+----+----------+----------------+----------+------------+--------------+
| 1 | 10 | 1 | name - 1 | 0 | NULL |
+----+----------+----------------+----------+------------+--------------+

如果我按 name LIKE '%child%' 搜索,输出应该是

+----+----------+----------------+----------+------------+--------------+
| id | user_id | content_type | name | is_episode | episode_name |
+----+----------+----------------+----------+------------+--------------+
| 2 | 12 | 2 | name - 2 | 0 | NULL |
+----+----------+----------------+----------+------------+--------------+

我无法获得正确的查询输出。您能否写下满足我所有输出的查询。

最佳答案

您的问题是,您过滤掉具有 Is_episode = 0 的行,但是您需要在具有 is_episode = 1< 的行中进行搜索 类似于 cname-2child-2

您的问题是由于 is_episode = 0 引起的,将其删除即可正常工作。如果您仍有问题,请发表评论。

更新:根据您的评论,根据我的理解,我认为您可能需要某种形式的多个查询并基于进行分离> 或您的逻辑/条件,然后将union结果组合在一起。

select .. from parent, child .. where is_episode = 0 and name like ... 
union
select .. from child join parent where episode_name like ...

关于mysql - 如何从多个表中搜索父内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46895469/

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