gpt4 book ai didi

mysql连接4个表返回空值

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

我有四个表的数据需要连接:维度、维度结果、产品和产品报告。我的目标是为属于产品的报告选择所有维度(包括 NULL),以便用户可以查看或编辑现有值或为空报告填写新值。

到目前为止我已经尝试过:

SELECT d.DID, Nominal, r.`Result`, r.`PRID` 
FROM `Dimensions` d
JOIN `Products` x ON d.`PID` = x.`PID`
LEFT JOIN `DimensionResults` r ON d.`DID` = r.`DID`
JOIN `ProductReports` p ON r.`PRID` = p.`PRID` AND x.`PID` = p.`PID`
WHERE r.`PRID` = 'PRID17ca-fe04-77ba-6ba8-94416f25197f'

还有一些变化:最后一个连接上没有 AND 以及 JOIN 命令的一些其他序列,但不知何故 SQL 将不会选择产品的未报告尺寸(即空值)。

我做了一个 SQL fiddle 来进一步澄清:http://sqlfiddle.com/#!9/42abe7/6

我没有看到什么?

--编辑:--

在拉胡尔的回答的帮助下,我明白了:

SELECT d.DID, Nominal, r.`Result`, r.`PRID` 
FROM `Dimensions` d
JOIN `Products` x ON d.`PID` = x.`PID`
LEFT JOIN `DimensionResults` r ON d.`DID` = r.`DID`
AND r.`PRID` = 'PRID17ca-fe04-77ba-6ba8-94416f25197f'
LEFT JOIN `ProductReports` p ON r.`PRID` = p.`PRID` AND x.`PID` = p.`PID`
WHERE d.`PID` = 'PID107ca-fe04-77ba-6ba8-94416f25197f'

给出了我正在寻找的结果。我认为它可以在不传递 PID 参数的情况下完成,但至少这是可行的。

感谢您的快速回复!

最佳答案

WHERE 条件 (WHERE r.PRID = 'PRID17ca-fe04-77ba-6ba8-94416f25197f') 移至 JOIN ON 条件像下面这样。检查你修改过的 fiddle http://sqlfiddle.com/#!9/42abe7/14

LEFT JOIN `DimensionResults` r ON d.`DID` = r.`DID`
AND r.`PRID` = 'PRID17ca-fe04-77ba-6ba8-94416f25197f'

关于mysql连接4个表返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38923083/

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