2011-07-13 42 views
0

有什麼辦法可以獲取表格的(行,列)座標嗎?在MySQL查詢中獲取表格的座標(行,列)

例子:

tbl1:        tbl2: 
+--------+--------+--------+  +------+-----------+---------+ 
| Name | ROW | COL |  | ROW | COL_0 | COL_1 | 
+--------+--------+--------+  +------+-----------+---------+ 
| VALUE1 |  0 |  0 |  | 0 | OPEN  | CLOSE | 
| VALUE2 |  2 |  1 |  | 1 | RIGHT | LEFT | 
| VALUE3 |  1 |  0 |  | 2 | OFFLINE | ONLINE | 
+--------+--------+--------+  +------+-----------+---------+ 

結果應該是這樣的:

+--------+----------+  
| Name | ROWCOL | 
+--------+----------+ 
| VALUE1 | OPEN | 
| VALUE2 | ONLINE | 
| VALUE3 | RIGHT | 
+--------+----------+ 

提前感謝!

+1

得到您的結果,我認爲這是更好你向我們解釋你想達到什麼,這聽起來很奇怪。 – fvu

+0

我只是想構建一個MySQL查詢,使用tbl1和tbl2作爲輸入給出第三個表作爲結果。 – Fracu

+0

您確定這是您想要構建數據庫的方式嗎? –

回答

2

這是一個奇怪的要求,但我相信這將工作:

SELECT name, 
CASE COL 
    WHEN 0 THEN COL_0 
    WHEN 1 THEN Col_1 
END as rowcol 
FROM tbl1 as t1 
INNER JOIN tbl2 as t2 
ON t1.ROW = t2.ROW 
+0

+1我只是在輸入相同的東西。 –

+0

謝謝安倍!這正是我所期待的。它按我的預期工作。 – Fracu

0

我想着依靠像rownumbers隱式數據左右是不是一個好主意。

我建議重組tbl2的到這樣的事情:

create table tbl2 (
    rowid integer, 
    colid integer, 
    textvalue varchar(32) 
); 

數據看起來就像是

0 0 OPEN 
0 1 CLOSE 
1 0 RIGHT 
1 1 LEFT 
... 

,讓您與

select tbl1.name as Name, tbl2.textvaluevalue as ROWCOL 
from tbl1, tbl2 
where tbl1.ROW = tbl2.rowid and tbl1.COL = tbl2.colid