首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何包含两个表中的所有值?Group-Concat和其他值

如何包含两个表中的所有值?Group-Concat和其他值
EN

Stack Overflow用户
提问于 2013-07-02 21:43:58
回答 1查看 53关注 0票数 0

简而言之,我已经提供了数据,以及目前的结果,请告诉我怎么做才能完成最后一步。请使用SQLite。

==书面解释==

我想使用表B连接来自表A的值,但随后显示来自表A的所有结果,甚至是那些在表B中没有值的结果。我尝试了一大堆变体,但我确实遇到了困难。

表:

*user_tables*

代码语言:javascript
复制
_id         table_name  table_version  table_status
----------  ----------  -------------  ------------
1           addresses   1              1
2           jobs        1              1
3           people      1              1
4           phones      1              1

*user_tables_depends*

代码语言:javascript
复制
_id         user_table_id  user_table_depend_id
----------  -------------  --------------------
1           1              2
2           1              3
3           2              1
4           2              4
5           4              2

当前查询:

代码语言:javascript
复制
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

查询结果:

代码语言:javascript
复制
table_name  table_version  table_status  table_dependencies
----------  -------------  ------------  ------------------
addresses   1              1             jobs, people
jobs        1              1             addresses, phones
phones      1              1             jobs

期望的结果:

代码语言:javascript
复制
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中按预期工作即可。提前谢谢,干杯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-02 21:53:57

这就是outer joins的用途。并且您应该使用正确的连接语法(使用ON):

代码语言:javascript
复制
SELECT ...
FROM user_tables LEFT JOIN 
    (...)
    ON user_tables._id = user_table_id
GROUP BY ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17427256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档