2011-03-26 130 views
0

我只有一個列名Col1中具有行的表名T1 -找到輸出MySQL查詢

Col1 
a 
b 
c 

而另一表名T2也只有一個列名Col1中具有行 -

Col1 
x 
y 
z 

現在我想記錄像

Col1--Col2 
a------x 
b------y 
c------z 

我使用的MySQL。 在此先感謝!

+0

你如何計算,A應該在輸出中帶有X,換句話說,加入的規則是什麼? – 2011-03-26 19:01:11

+0

很難說出你的表格結構是什麼樣的或你想要的結果。你能否重申這個問題? – 2011-03-26 19:03:27

+0

首先清楚你的問題 – 2011-03-26 19:06:06

回答

0

在您的例子,如果你想加入的表來獲得行的結果是這樣的:

  • 行1 - A,X
  • 行2 - B,Y
  • 行3 - ç ,Z

..然後你將不得不添加一個公共字段,你可以加入這兩個表。

如果您希望能夠從兩個表這樣的返回結果:

  • 行1 - 一個
  • 行2 - B
  • 行3 - ç
  • 行4 - X
  • 行5 - ý
  • 第6行 - z

..然後你就需要使用UNION:

(SELECT Col1 FROM T1) UNION (SELECT Col1 FROM T2) 
+0

感謝您的回覆。但我需要第一個結果。 行1 - A,X行2 - B,Y行3 - C,Z 我沒有選擇改變表格。 – user306689 2011-03-26 19:12:16

3
create table T1(col1 varchar(10)); 
insert T1 values ('a'),('b'),('c'); 
create table T2(col2 varchar(10)); 
insert T2 values ('x'),('y'),('z'); 

select A.col1, B.col2 from 
(select @r:[email protected]+1 rownum, col1 from (select @r:=0) initvar, T1) A, 
(select @s:[email protected]+1 rownum, col2 from (select @s:=0) initvar, T2) B 
where A.rownum=B.rownum 

因爲沒有ORDER BY子句,你依賴於運氣和約定的行編號被按照插入的順序。 並非總是如此。

+0

謝謝理查德。其實我正在使用相同的查詢,但忘記初始化r和s變量。所以我的結果是空集。 非常感謝。 – user306689 2011-03-26 19:40:07

+0

@ user306689 - 很高興爲您提供幫助(你在那裏90%)。僅供參考,本網站上的約定是剔出一個答案,以幫助強調這是問題的正確/最佳解決方案。 – RichardTheKiwi 2011-03-26 20:20:48