4 votes

Utiliser des propres tuples dans l'instruction JOIN

Est-il possible d'utiliser ses propres tuples comme source pour une instruction JOIN ?

Voici un exemple de ce que je cherche :

SELECT u.id, u.name FROM users u INNER JOIN {{tupl1},{tupel2},{tupel3},...}

4voto

Mikael Eriksson Points 77190

Dans SQL Server 2008, vous utilisez le Constructeur de Valeur de Table.

déclarer @T table(ID int)
insérer dans @T valeurs (1),(2),(3),(4),(5)

sélectionner *
de @T comme T1
  inner join (
              values (1, 'Ligne 1'), 
                     (2, 'Ligne 2')
             ) comme T2(ID, Col1)
    sur T1.ID = T2.ID

2voto

De nombreuses plateformes de SGBD prennent en charge les expressions de table commune.

with my_own_tuples as (
    select 'valeur1' as colonne1, 'valeur2' as colonne2
    union all 
    select 'valeur3', 'valeur4'
    union all 
    select 'valeur5', 'valeur6'
)
select colonne1, colonne2
from ma_autre_table
inner join my_own_tuples on (my_own_tuples.colonne1 = ma_autre_table.colonne1);

Expressions de table commune PostgreSQL

0voto

StuartLC Points 35534

MySql a un certain support pour les tuples avec des comparaisons et l'égalité, bien que je peine à trouver une référence définitive à ce sujet.

Par exemple:

SELECT *
    FROM table1 t1
       INNER JOIN table2 t2
       ON (t1.Col1, t1.Col2) = (t2.Col1, t2.Col2);

Et

SELECT *
    FROM table1 t1
       WHERE (t1.Col1, t1.Col2) <= ('SomeValue', 1234);

SqlFiddle montrant ces requêtes ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X