2017-03-22 23 views
1

私は4つの列(ID、名前、ゲーム、ポイント)を持つテーブルが必要です。列名は両方の表で同じです。大きなテーブルの両方の列からすべてを選択したいと思います(サッカーの場合は、MLSとPremier Leagueに1つのテーブルで参加しました)。 私はこのコードを試してみた:同じ列を持つ2つのテーブルから選択してください

SELECT * FROM league1 JOIN league 2; 

をそれは私が欲しかっ出力されませんでした。

CREATE TABLE `league1` (
`id` int(11) DEFAULT NULL, 
`Navn` varchar(50) COLLATE utf8_danish_ci NOT NULL, 
`kampe` int(11) DEFAULT NULL, 
`Point` int(11) NOT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci ROW_FORMAT=DYNAMIC 

CREATE TABLE `league2` (
`id` int(11) DEFAULT NULL, 
`Navn` varchar(50) DEFAULT NULL, 
`kampe` int(11) DEFAULT NULL, 
`Point` int(11) DEFAULT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 

が、それは同じ列の下にそれらを結合することはできませんので、私はまだ両方のテーブルから4列が、すべての行を持っている: 私は私のテーブルがexatly同じに作成されていない見ることができますか?

答えて

1

union allを使用して重複を防止します。そして、フィールドの数が異なる場合には、あなたはちょうどあなたが二つのテーブルの内容を統一するのではなく、参加したくない*

SELECT * FROM league1 
    UNION ALL 
    SELECT * FROM league2 
+0

これをmysqlに書いていると、#1271 - 演算 'UNION'の照合の組み合わせが正しくありません –

+0

結局のところ、あなたのテーブルは ''等しい ''なのですか?あなたの質問を更新して、各リーグの作成テーブルを表示してください。しかし、両方のテーブルが同じ日付型を持つように、 'CAST'を実行しなければならないようです。 –

+0

多分あなたは正しいです。愚かな質問ですが、私はそれを作成したばかりの前に、 'create table'をどこかに見つけることができます。 –

1

するのではなく、両方のテーブルにフィールドマッチングを宣言することができ

SELECT * 
FROM league1 
UNION ALL 
SELECT * 
FROM league2; 
関連する問題