gpt4 book ai didi

mysql - 如何修复: SQL search in multiple joined tables no result

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

我有一个包含 4 个内连接表的数据库(将它们命名为 A、B、C 和 D)。如果WHERE子句后的搜索条件在表A/B/C中,则有效。如果我的搜索条件在表D中,没有结果。如果查询中未连接表 B,则会有表 D 条件的结果。

我正在使用 phpmyadmin 和 InnoDB。

下面是给出 0 结果的代码:

SELECT A.1, A.2, B.1, B.2, D.1
FROM A
INNER JOIN D
ON A.3 = D.2
INNER JOIN C
ON A.4 = C.1
INNER JOIN B
ON C.1 = B.3
WHERE D.3 IN ('example_search');

如果我删除 B 连接,它会给我预期的结果和所需的 D.1 值:

SELECT A.1, A.2, /*B.1, B.2,*/ D.1
FROM A
INNER JOIN D
ON A.3 = D.2
INNER JOIN C
ON A.4 = C.1
/*INNER JOIN B
ON C.1 = B.3*/
WHERE D.3 IN ('example_search');

如果我的搜索条件不在D表中也有效:

SELECT A.1, A.2, B.1, B.2, D.1
FROM A
INNER JOIN D
ON A.3 = D.2
INNER JOIN C
ON A.4 = C.1
INNER JOIN B
ON C.1 = B.3
WHERE B.1 IN ('example_search')
AND A.2 IN ('example_search_2');

它也返回正确的 D.1 值。example_search 和 example_search_2 来自其他数据库查询,因此问题不是拼写错误(至少不在条件中)。我不知道我哪里犯了错误。感谢您的回复。PS.:我的英语不好,抱歉。

最佳答案

感谢您的提示,因为我发现了这个错误,该数据库不是我的工作,它在表 C 中有一个奇怪的功能,所有具有 C 表引用 ID 的所需值都是空值(据我所知,是C表中的小“表”)。我需要的内容在 2 个引用 ID 之间(因此 INNER JOIN B ON C.1 + 1 = B.3 有效)。

关于mysql - 如何修复: SQL search in multiple joined tables no result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57660806/

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