Print

Print


I’m not at a place where I can test to make sure I have syntax correct, but it sounds like you might want to do it as a ‘sub query’ rather than a join, as you don’t have a one-to-one relationship.

(So the subquery would do the concat, and you don’t risk it expanding multiplicatively because of the multiple one-to-many joins)

You would need two sub-queries, one for each left join.

-Joe

Sent from a mobile device with a crappy on screen keyboard and obnoxious "autocorrect"

> On Oct 29, 2021, at 10:23 AM, Stefano Bargioni <[log in to unmask]> wrote:
> 
> Hi, Eric: is this page useful for you? https://www.sqlitetutorial.net/sqlite-union/ <https://www.sqlitetutorial.net/sqlite-union/> 
> SB
> 
>> On 29 Oct 2021, at 15:46, Eric Lease Morgan <[log in to unmask]> wrote:
>> 
>> How do I join multiple tables in an SQLite database in order to output the values in the linked tables?
>> 
>> 
>> I have a database with the following structure:
>> 
>> create table bibliographics (
>>     identifier  TEXT PRIMARY KEY,
>>     title       TEXT
>> );
>> 
>> create table keywords (
>>     identifier TEXT,
>>     keyword    TEXT
>> );
>> 
>> create table entities (
>>     identifier TEXT,
>>     entity     TEXT
>> );
>> 
>> 
>> I want output looking like this:
>> 
>> identifier = homer
>> keywords   = love; honor; truth; justice;
>> entities   = jove; troy; helen; son; ship
>> 
>> 
>> Here is my SQL query:
>> 
>> SELECT b.identifier,
>>        GROUP_CONCAT( e.entity,  '; ' ) AS entities,
>>        GROUP_CONCAT( k.keyword, '; ' ) AS keywords
>> FROM bibliographics AS b
>> LEFT JOIN entities  AS e ON e.identifier IS b.identifier
>> LEFT JOIN keywords  AS k ON k.identifier IS e.identifier
>> GROUP BY b.identifier
>> 
>> 
>> Unfortunately, my output is looking much like this:
>> 
>> identifier = homer
>> keywords   = love; honor; truth; justice;
>> entities   = jove; troy; helen; son; ship; jove; troy; helen; son; ship; jove; troy; helen; son; ship; jove; troy; helen; son; ship; jove; troy; helen; son; ship; jove; troy; helen; son; ship; 
>> 
>> 
>> What am I doing wrong? 
>> 
>> 
>> --
>> Eric Morgan
>>