gpt4 book ai didi

database - MySQL关系数据库中选择数据时出现空集

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

我有一些关系型 MySQL 数据库,其中有几十个表...我的查询长 1000 英尺,从几乎所有表中选择数据...我还有我的“主”表,所有其他表都引用该表一。当我在主表中输入一行并且在其他表中为该行创建所有关系时,我的查询工作正常。但是,如果我在主表中输入一行,而没有在其他地方输入,我会得到空集。但我想至少在我的结果中得到这些信息。或者,当然,在其他表中输入的所有信息,无论某些表没有该记录(行)的信息...

感谢您的帮助!

更新:

我不使用 JOIN 语法,我的查询看起来与此类似:

$query = "SELECT a.*, b.*, c.*, d.*, e.*, f.*";
$query .= " FROM a, b, c, d, e, f";
$query .= " WHERE a.aID = b.aID";
$query .= " AND b.bID = c.bID";
$query .= " AND b.bID = d.bID";
$query .= " AND b.bID = e.bID";
$query .= " AND b.bID = f.bID";

最佳答案

您的问题目前非常模糊,但很可能是由于您使用 INNER JOIN s 而不是 LEFT JOIN s。

此查询:

SELECT  *
FROM main
JOIN secondary
ON secondary.main_id = main.id

如果 secondary 将不返回任何内容为空。

此查询:

SELECT  *
FROM main
LEFT JOIN
secondary
ON secondary.main_id = main.id

将为 main 中的每条记录返回至少一条记录,将辅助字段替换为 NULL如果 secondary 中没有匹配记录,则返回 s .

更新:

隐式 JOIN您使用的语法(枚举表并在 JOIN 子句中提供 WHERE 条件)假定 INNER JOIN s。

假设a是“主”表,将您的查询重写为:

SELECT  a.*, b.*, c.*, d.*, e.*, f.*
FROM a
LEFT JOIN
b
ON b.aID = a.aID
LEFT JOIN
с
ON c.bID = b.bID
LEFT JOIN
d
ON d.bID = b.bID
LEFT JOIN
e
ON e.bID = b.bID
LEFT JOIN
f
ON f.bID = b.bID

关于database - MySQL关系数据库中选择数据时出现空集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1709270/

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