Search code examples
sqlpostgresqldjango-database

Select columns from multiple tables


I have multiple tables with identical primary key fields but no other identical field. I want to select a collection of columns from all tables matching a specific primary key, something like so:

SELECT T1.a, T2.b, ..., TN.z FROM T1, T2, ..., TN WHERE T1.pk = "abc"

Solution

  • SELECT T1.a, T1.b, ..., TN.z
    FROM T1 INNER JOIN T2 ON T1.pk = T2.pk
    INNER JOIN T3 on T1.pk = T3.pk
    ...
    INNER JOIN TN on T1.pk = TN.pk
    AND TN.pk = "abc"
    

    Or in a shorter form (thanks @Abelisto!).

    SELECT T1.a, T1.b, ..., TN.z
    FROM T1 JOIN T2 using(pk)
    JOIN T3 using(pk)
    ...
    JOIN TN using(pk)
    WHERE TN.pk = "abc"