SQLite在JOIN不';我找不到匹配的
我是SQLite新手,我正在尝试创建一个联接表的视图,其中表的结果引用表的名称。用户可以添加、编辑和删除表_名称中的项目,但不能更改表_结果中的引用。我试图实现的是,如果删除表\u name中的一个条目,在连接过程中,表\u name ON(表\u results.name\u id=表\u name.\u id)将返回表\u results中的所有行,但删除名称条目的位置将显示“NO name” 例如:SQLite在JOIN不';我找不到匹配的,sqlite,join,Sqlite,Join,我是SQLite新手,我正在尝试创建一个联接表的视图,其中表的结果引用表的名称。用户可以添加、编辑和删除表_名称中的项目,但不能更改表_结果中的引用。我试图实现的是,如果删除表\u name中的一个条目,在连接过程中,表\u name ON(表\u results.name\u id=表\u name.\u id)将返回表\u results中的所有行,但删除名称条目的位置将显示“NO name” 例如: table_names: _id name 1 John 2 Bill 3 S
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
现在,如果用户要从表_名称中删除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);
我正在做一个Android项目,在设备上使用SQLite。这正是我想要的。非常感谢。