Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite在JOIN不';我找不到匹配的_Sqlite_Join - Fatal编程技术网

SQLite在JOIN不';我找不到匹配的

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

我是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   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。这正是我想要的。非常感谢。