Android 如何包含两个表中的所有值?组Concat和其他值
简而言之,我已经提供了数据,以及目前的结果,请告诉我最后一步该怎么做。请使用SQLite ==书面解释== 希望使用表B连接表A中的值,但随后显示表A中的所有结果,即使是表B中没有值的结果。我尝试了一系列变体,我真的被卡住了 表: *用户表*Android 如何包含两个表中的所有值?组Concat和其他值,android,database,sqlite,group-concat,nested-queries,Android,Database,Sqlite,Group Concat,Nested Queries,简而言之,我已经提供了数据,以及目前的结果,请告诉我最后一步该怎么做。请使用SQLite ==书面解释== 希望使用表B连接表A中的值,但随后显示表A中的所有结果,即使是表B中没有值的结果。我尝试了一系列变体,我真的被卡住了 表: *用户表* _id table_name table_version table_status ---------- ---------- ------------- ------------ 1 addresses
_id table_name table_version table_status
---------- ---------- ------------- ------------
1 addresses 1 1
2 jobs 1 1
3 people 1 1
4 phones 1 1
*用户表取决于*
_id user_table_id user_table_depend_id
---------- ------------- --------------------
1 1 2
2 1 3
3 2 1
4 2 4
5 4 2
当前查询:
SELECT table_name, table_version, table_status,
GROUP_CONCAT(dependName, ', ') AS table_dependencies
FROM user_tables JOIN
(SELECT user_table_id, table_name AS dependName
FROM user_tables_depends, user_tables
WHERE user_tables._id = user_table_depend_id)
WHERE user_tables._id = user_table_id
GROUP BY table_name
查询结果:
table_name table_version table_status table_dependencies
---------- ------------- ------------ ------------------
addresses 1 1 jobs, people
jobs 1 1 addresses, phones
phones 1 1 jobs
预期结果:
table_name table_version table_status table_dependencies
---------- ------------- ------------ ------------------
addresses 1 1 jobs, people
jobs 1 1 addresses, phones
people 1 1
phones 1 1 jobs
注意:请不要担心这些值是什么,它们是虚拟数据,我只需要查询在SQLite中按需要工作。提前谢谢,干杯。这就是我们的目的。
您应该使用正确的连接语法(在上使用):
啊,哇,我还以为我对SQL的掌握还不错,这就是拥抱,真不敢相信我忘记了基本的东西。无论如何,谢谢你的帮助,先生,它就像一个符咒!是否应使用操作员+
。我只是想澄清一下。正在阅读oracle sql中的一本书,它说+运算符的作用是创建一个或多个空行,非缺陷表中的一个或多个行可以连接到这些空行。@raghundandan使用+
进行外部连接是过时的oracle特定语法。自版本9i以来,Oracle支持SQL连接。
SELECT ...
FROM user_tables LEFT JOIN
(...)
ON user_tables._id = user_table_id
GROUP BY ...