0

要するに、私はデータと現在の結果を提供しました。最後のステップを行うために何をすべきか教えてください. SQLite を使用してください。

== 説明文 ==

テーブル B を使用してテーブル A の値を連結したいが、テーブル B に値がないものも含め、テーブル A のすべての結果を表示したい。

テーブル:

*ユーザーテーブル*

_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*

_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 で必要に応じて機能する必要があるだけです。よろしくお願いします。

4

1 に答える 1

0

これが外部結合の目的です。そして、適切な結合構文を使用する必要があります (with ON):

SELECT ...
FROM user_tables LEFT JOIN 
    (...)
    ON user_tables._id = user_table_id
GROUP BY ...
于 2013-07-02T13:53:56.840 に答える