2017-03-22 253 views
1

我必須要有表格,每個表格有4列(id,name,games,points)。兩個表中的列名相同。我想從一張大桌子的兩欄中選擇一切(比如足球,你在一張桌子上加入MLS和英超聯賽)。 我試過這段代碼:從兩張同列的表中選擇

SELECT * FROM league1 JOIN league 2; 

,但它不是我想要的輸出。 我可以看到我的表不會創建exatly一樣:

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列,但兩個表中的所有行?

回答

1

使用union all保留重複。而在案場的數量是不同的,你可以只聲明場匹配兩個表,而不是*

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

如果我在mysql中編寫它,它會說:#1271 - 操作的排序規則混合不正確'UNION' –

+0

看起來您的表不是那麼「」相等「?更新你的問題,以顯示每個聯賽的創建表。但似乎你必須做一個'CAST',所以兩個表都有相同的日期類型。 –

+0

也許你是對的..愚蠢的問題,但我可以找到'創建表'的地方,因爲它是很久以前我創建它。 –

1

你不想加入,但團結的兩個表的內容

SELECT * 
FROM league1 
UNION ALL 
SELECT * 
FROM league2;