gpt4 book ai didi

SQLite 替换 JOIN 找不到匹配项的值

转载 作者:行者123 更新时间:2023-12-03 17:45:55 24 4
gpt4 key购买 nike

我是 SQLite 的新手,我正在尝试创建连接表的 View ,其中 table_results 引用 table_names。用户可以在 table_names 中添加、编辑和删除项目,但不能更改 table_results 中的引用。我要完成的是,如果删除 table_names 中的条目,则在 JOIN table_names ON (table_results.name_id=table_names._id) 期间将返回 table_results 中的所有行,但删除名称条目将显示“NO NAME "

例子:

table_names:
_id name
1 John
2 Bill
3 Sally
4 Nancy

table_results:
_id name_id score_1 score_2
1 1 50 75
2 4 80 60
3 2 83 88
4 3 75 75
5 2 93 95

where:
Select table_results._id table_names.name, table_results.score_1, table_results.score_2
FROM table_results
JOIN table_names ON (table_reults.name_id = table_names._id);

produces:
1 John 50 75
2 Nancy 80 60
3 Bill 83 88
4 Sally 75 75
5 Bill 93 95

现在,如果用户要从 table_names 中删除 Bill,相同的查询字符串将产生:
1 John   50   75
2 Nancy 80 60
4 Sally 75 75

我的问题:
当连接找不到匹配项时,有没有办法让查询替换值?我希望上面的示例产生以下输出,但我不确定如何为 SQL 编写查询字符串。
1 John     50   75
2 Nancy 80 60
3 NO NAME 83 88
4 Sally 75 75
5 NO NAME 93 95

谢谢你的帮助。

最佳答案

当然,您正在执行内部连接,只需将其更改为左外部连接..

SELECT table_results._id
,COALESCE(table_names.name, 'NO NAME') AS [name]
,table_results.score_1
,table_results.score_2
FROM table_results
LEFT OUTER JOIN table_names
ON (table_reults.name_id = table_names._id);

关于SQLite 替换 JOIN 找不到匹配项的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5304127/

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