2012-01-17 1 views
0

以外の参加左セレクト私が選択している:が1列

SELECT t1.*, t2.* from t1 left join t2 on t2.id = t1.id 

idがT2には存在しない存在する場合、または私は(NULL可能)t2.id以外t2からすべての列をしたいです。

クエリー内のすべての列名をプリントアウトする必要はありませんか?

THX

+0

As @Sergio said – Quassnoi

+0

@Quassnoi thxもう一度 – mort

+0

hm、私はあなたが尋ねていたことを理解していないか、他の回答に自分自身をチェックしていません。 – newtover

答えて

3

はありません、あなたが興味のあるすべての列を指定するか、ワイルドカードを使用するかがあります。

0

2つのテーブルのみid共通の列などを持っている場合は、あなたも、この使用することができます、ところで、それは名前に良いアイデアです理由、ある

SELECT * 
FROM t1 
    NATURAL LEFT JOIN 
     t2 
+0

は、彼が – newtover

+0

に参加したくない同名の列があると危険です。また、 't1'の' id'を返します。 – Quassnoi

+0

@Quassnoi、OPは 't2.id'を出力には望んでいませんが、' t1.id'が必要です。 – newtover

1
SELECT * 
FROM t1 
LEFT JOIN t2 
    USING (id); 

を使用する列は、データベース全体で同じ方法で結合されます。

+0

はい..あなたは正しいです.USING mysqlは重複カラムIDを削除します。しかし、t1.id、t1.name、t2.name、t2。*、t3。*を使用してもはや動作せず、重複する列IDが戻ってくる:( – mort

+1

@mort、まあ別のケースです。すべての列を明示的に指定することをお勧めします。 – newtover