gpt4 book ai didi

MySql 中有一个 JOIN 表没有数据时返回空结果

转载 作者:行者123 更新时间:2023-11-29 02:16:27 28 4
gpt4 key购买 nike

使用下面的 Sql 查询,当所有表都有数据时,我可以获得成功的结果,但是在这个我的查询中,当 transactions 表没有任何保存的数据并且它是空的时,我的查询返回空结果,但是我想要获取 null 或空列数据

SELECT transactions.id, 
userEwallets.ewalletNumber,
userEwallets.currencySymbol,
transactions.money,
transactions.transactionType,
b.username AS toUser,
a.username AS sender
FROM transactions
JOIN userEwallets ON transactions.ewalletId = userEwallets.id
LEFT JOIN users AS b ON b.id = transactions.toUserId
LEFT JOIN users AS a ON a.id = transactions.fromUserId
WHERE transactions.userId = 37

当它不为空时我得到这个结果:

id  ewalletNumber       currencySymbol  money   transactionType toUser  sender
95 SHIRR9373036569 IRR 20 1 1 amin

最佳答案

您可以使用只有一行的虚拟表格。其他表应该与它相连。

SELECT transactions.id, 
userEwallets.ewalletNumber,
userEwallets.currencySymbol,
transactions.money,
transactions.transactionType,
b.username AS toUser,
a.username AS sender
FROM (select 1) dummy
LEFT JOIN transactions ON transactions.userId = 37
LEFT JOIN userEwallets ON transactions.ewalletId = userEwallets.id
LEFT JOIN users AS b ON b.id = transactions.toUserId
LEFT JOIN users AS a ON a.id = transactions.fromUserId

如果你给它一个别名,你总是可以使用一个子查询而不是一个表名。请注意,您必须将左连接表的 WHERE 条件移动到 ON 子句中 - 否则 MySQL 会将其转换为 INNER JOIN。

关于MySql 中有一个 JOIN 表没有数据时返回空结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38934618/

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