2015-12-02 41 views
0

我有表「元」具有以下字段和值:Mysql的加入同一個表中的多個條目

•col1 •col2 •col3 •REL •JOIN 
    1  John Smith  1 0 
    2  Peter Pan   2 0 
    3  Brat Pitt  3 0 
    4  Sarah Palin  1 00 
    5  King David  2 00 
    6  Coco Sha   3 00 
    7  Santa Claus  3 00 

我想通過循環,並顯示一個列表從同一個表結合數據如下:

•col1 •col2 •col3 •REL •JOIN •col1 •col2 •col3 •REL •JOIN 

    1 John Smith 1 0  1 John Smith 1 0 

    1 John Smith 1 0  2 Peter Pan  2 0 

    1 John Smith 1 0  3 Brat Pitt 3 0 

    4 Sarah Palin 1 00  4 Sarah Palin 1 00 

    4 Sarah Palin 1 00  5 King David 2 00 

    4 Sarah Palin 1 00  6 Coco Sha  3 00 

    4 Sarah Palin 1 00  7 Santa Claus 3 00 

如果* REL = '1',那麼使用COL1,COL2和COL3有* REL = '1' 在下一加入
* JOIN被用於最終的鍵連接

+1

的第一個字符,你已經嘗試過什麼迄今爲止解決問題了嗎? – jeffdill2

+0

你能解釋一下連接條件邏輯嗎? –

+0

if * REL ='1'然後在下一個連接中使用col1,col2和col3,其中* REL ='1' * JOIN是最終連接的關鍵 – user5631718

回答

0

喲你可以實現上面的連接邏輯如下。

select a.col1, a.col2, a.col3, a.REL, a.joinKey, 
      b.col1, b.col2, b.col3, b.REL, b.joinKey 
     from meta a join meta b on a.joinKey = b.joinKey 
     where a.REL = 1; 

爲此設置了一個sql小提琴。 SQL Fiddle

+0

謝謝馬克。我更新了問題 –

+0

的每個更新的答案,這是行得通的。謝謝cyber.sh! – user5631718

+0

我很高興該解決方案爲您工作。請接受答案。 –

0

貌似你試圖加入在col1

select a.*, b.* 
from meta a 
join meta b on a.col1 = left(b.col1,1)