gpt4 book ai didi

MySQL:当连接表有多个结果时,为什么此选择查询找不到行?

转载 作者:行者123 更新时间:2023-11-29 14:14:36 24 4
gpt4 key购买 nike

标题可能比较困惑,不知道该怎么写。这就是我需要做的。我有两个表,cronjobs 和 cronjob_seeds。我需要在将 cronjob 添加到数据库之前查看它是否存在。

考虑这些表格:

定时任务:

-id-   -callback_model-         -callback_method-
1 movie_suggestion_model fetch_similar_movies

cronjob_seeds:

-cronjob_id-   -seed-
1 seed1
1 seed2

在添加新的 cronjob 之前,我需要查看数据库中是否存在完全相同的 cronjob。我编写了以下查询,但如果 cronjob 有多个种子,则该查询不起作用。如果它只有一个种子,那么效果很好,但每次 cronjob 有多个种子时,它都不会返回任何内容。

SELECT `id`
FROM (`cronjobs`)
INNER JOIN `cronjob_seeds` ON `cronjob_seeds`.`cronjob_id` = `cronjobs`.`id`
WHERE `cronjobs`.`callback_model` = 'movie_suggestion_model'
AND `cronjobs`.`callback_method` = 'fetch_similar_movies'
AND `cronjob_seeds`.`seed` = '1'
AND `cronjob_seeds`.`seed` = 10

我错过了什么吗?我应该使用其他类型的连接吗?

而且,题外话,但是种子是回调方法的一个参数,我只是命名它有点奇怪。

最佳答案

您应该使用 IN 子句

将您的查询更改为:

SELECT `id`
FROM (`cronjobs`)
INNER JOIN `cronjob_seeds` ON `cronjob_seeds`.`cronjob_id` = `cronjobs`.`id`
WHERE `cronjobs`.`callback_model` = 'movie_suggestion_model'
AND `cronjobs`.`callback_method` = 'fetch_similar_movies'
AND `cronjob_seeds`.`seed` IN ('seed1', 'seed2')

关于MySQL:当连接表有多个结果时,为什么此选择查询找不到行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12884372/

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