在我看來,要通過每個表中的行的順序來連接兩個表。我很抱歉,但是SQL沒有表格中行的隱式順序的概念,並且SQL中沒有辦法連接兩個(或更多)表的列而沒有任何列來允許JOIN。
,你可以在SQL完成最近的事情是:
- 兩個表之間
CROSS JOIN
。這將重複每一行從表1至表2中的每一行:
SELECT t1.row1, t1.row2, t2.row3, t2.row4
FROM table1 t1
CROSS JOIN table1 t2
-- row1 row2 row3 row4
-- ---- ------ ---- ------
-- 12 gfd 18 gjkd
-- 13 jf 18 gjkd
-- 14 gfd 18 gjkd
-- 15 jhhh 18 gjkd
-- 12 gfd 11 jfyty
-- 13 jf 11 jfyty
-- 14 gfd 11 jfyty
-- 15 jhhh 11 jfyty
- 創建另一個(輔助)列和存儲你行的「命令」中的每個表(有很多方法可以做到這一點使用遊標,序列...)。然後使用這些列建立一個
OUTER JOIN
:
SELECT t1.auxOrder1, t1.row1, t1.row2, t2.auxOrder2, t2.row3, t2.row4
FROM table1 t1
LEFT OUTER JOIN table1 t2 ON (t1.auxOrder1 = t2.auxOrder2)
-- auxOrder1 row1 row2 auxOrder2 row3 row4
-- --------- ---- ------ --------- ---- ------
-- 1 12 gfd 1 18 gjkd
-- 2 13 jf 2 11 jfyty
-- 3 14 gfd
-- 4 15 jhhh
通過,你爲什麼要創建一個名稱,如「ROW1」,「2行」列的方式嗎?如果沒有打算,我想這可能會變得混亂。
您使用'MySQL'或'SQL server'? –
哪個RDBMS? MySQL或SQL服務器或其他東西? –
我調整了問題,我嘗試了建議的答案,但可以調整iReport,也許有人使用它? – khris