2009-03-12 8 views

Répondre

4
select * 
from Table1 
     inner join 
     Table2 
     on Table1.ColumnName = Table2.ColumnName 

vraiment simple.

+0

Avec quelqu'un qui est manifestement nouveau, est-ce une bonne idée d'encourager SELECT *? – StingyJack

+2

Que pouvez-vous dire d'autre sans aucune indication sur le schéma? –

+0

Je suggérerais "ColumnName" au lieu de Column, puisque Column est un mot-clé. Pas que ça compte en vrai SQL, juste pour le code par exemple. – DevinB

5

Ce que vous demandez est appelé NATURAL JOIN en terminologie relationnelle. Certains serveurs de base de données prennent en charge cette clause. Je préférerais spécifier manuellement la jointure d'expression, même si le fournisseur prend en charge une telle clause comme:

SELECT .... FROM Table1 JOIN Table2 ON Table1.JoinCol = Table2.JoinCol ... 
+0

En plus de votre remarque, je spécifie toujours la table ou l'alias de la table pour que tout le monde sache exactement d'où vient la colonne. Il rend le refactoring/maintenance beaucoup plus facile plus tard. – StingyJack

8

Utilisez un alias pour les noms de table est la plus courte.

SELECT a.*, b.* 
FROM table1 as 'a' 
    INNER JOIN table2 as 'b' 
    ON a.col1 = b.col1 

Vous pouvez également spécifier les noms de table complets.

SELECT table1.*, table2.* 
FROM table1 
    INNER JOIN table2 
    ON table1.col1 = table2.col1 
0

Et pour être complet (en fonction de votre SGBD), vous pouvez utiliser « UTILISATION »:

SELECT 
    ... 
FROM 
    table_a 
INNER JOIN 
    table_b 
USING 
    (common_column); 
Questions connexes