2015-01-02 42 views
1

特殊的置換我有這樣的選擇:如何建立在sqlite3的

SELECT modalityID,標籤識別,名字源於因素

這給了我這樣的結果:

modalityID tagID name 

10   21  Ética 
40   26  TESTE 
60   45  Contexto Social 

什麼我可以做以下排列:

modalityID tagID name   ModalityID-B TagID-B Name-B 
10   21  Ética   40    26  TESTE 
40   26  TESTE   60    45  Contexto Social 
10   21  Ética   60    45  Contexto Social 

請注意,modalityID必須是< modalityID-B和沒有重複的名稱。 我需要的只是使用一個表格(因子)的元素來生成所有可能的不同排列。換句話說,表格「因素」必須與其自身進行比較。

是否有可能在SQLite3上創建一個選擇來構建它?

問候

+0

我很抱歉,但我不明白您的規格。你能更好地解釋你到底想要完成什麼嗎?對一個或多個字段進行排列?排列是隨機的嗎?... – Amadan

+0

你的意思是你希望每個可能的*配對*(Carthesian產品)的原始表中的不同行? – Amadan

+0

是的。那可能嗎? – Britto

回答

3

你可以得到這樣的結果聯同是a.modalityID < b.modalityID連接條件。

Here is a working example using your schema in sqlfiddle

SELECT 
    a.modalityID 'a.modalityID', a.tagID 'a.tagID', a.name 'a.name', 
    b.modalityID 'b.modalityID', b.tagID 'b.tagID', b.name 'b.name' 
FROM factors a 
JOIN factors b ON a.modalityID < b.modalityID 
+0

哇!它正在工作......完美。謝謝。 – Britto

0

像這樣的東西(未測試):使用自

SELECT A.modalityID, A.tagID, A.name, B.modalityID AS modalityID_B, B.tagID AS tagID_B, B.name AS name_B 
FROM factors A, factors B 
WHERE modalityID < modalityID_B 
+0

工作也!謝謝! – Britto