Par exemple, j'ai deux tables (tables temporaires). L'un d'entre eux ne contient que des identifiants, et l'autre contient des informations réelles. Ils ont exactement le même numéro de rangée.Comment joindre deux tables sans condition
#Table1
ID
14
15
16
#Table2
CarModel Year
Ford 1996
Ferrari 2005
Toyota 2010
Comment puis-je joindre à cette table deux en un seul (sans aucune condition, juste la table de résultats a 3 colonnes, peu importe dans quel ordre)? J'en ai besoin pour insérer le résultat pour la table réelle
Cars
ID CarModel Year
Et cette table n'utilise pas d'identité. Il existe un mécanisme propre à obtenir des ID pour l'insertion. Je ne suis pas capable de le changer.
Donc, par conséquent je besoin d'une table comme un des éléments suivants (ordre n'a pas d'importance):
#Table3
ID CarModel Year
14 Ford 1996
15 Ferrari 2005
16 Toyota 2010
ou
#Table3
ID CarModel Year
16 Ford 1996
14 Toyota 2010
15 Ferrari 2005
post-scriptum Je comprends comment faire cela avec CTE et row_number(), mais je pense qu'il est plus facile de faire cette tâche. Et peut-être ce code sera utilisé dans MS SQL Server 2000, donc je serai heureux de regarder d'autres variantes des solutions.
'row_number()' serait la façon d'y parvenir. Cependant, je devrais demander pourquoi vous voudriez une jointure sur ces deux tables si elles ne contiennent pas réellement des données relatives. – Tejs
CTE et 'ROW_NUMBER' semble le meilleur moyen pour moi. Pour SQL Server 2000, vous devez le simuler avec une colonne 'identity' ou une jointure triangulaire ou utiliser des curseurs. –
@Tejs Merci pour votre réponse. J'ai besoin de cette date jointe pour l'insérer dans une table réelle (pas temporaire). Et j'ai besoin que mes lignes insérées aient des identifiants, que j'ai obtenus d'une procédure stockée. Mais je ne me soucie pas vraiment de l'identité concrète de chaque rangée. Tout ce dont j'ai besoin, c'est qu'ils seront tous issus de ma "piscine" Oui ce n'est pas le meilleur schéma, mais c'est et je dois travailler avec. –