2014-01-08 88 views
0

我有這樣選擇加入多行分爲單列

用戶表

name | phone | email 
jane | 123456 |[email protected] 
jack | 223456 |jack @test.com 

我要選擇這兩個用戶給他們的電話號碼是唯一的,去給

borrower | lender | email 
name  | jack  | [email protected] 

這就是我試過的

SELECT u1.name borrower,u1.email, u2.name lender FROM users u1 
LEFT JOIN users u2 on u2.phone='123456' WHERE u1.phone='223456' 

這給了我4行而不是一個什麼可能是錯的?

+0

「幾行到1行」='GROUP BY', 「只選擇2行」='LIMIT 2' – DanFromGermany

+0

將來會怎樣group by,這裏沒有唯一的列 – Smith

回答

1

SQLFIDDLE

SELECT 
    u1.name borrower, 
    u1.email, 
    u2.name lender 
FROM 
    users u1, 
    users u2 
WHERE 
    u2.phone='123456' 
    and 
    u1.phone='223456' 
; 

enter image description here

+0

我得到了相同的結果,4行 – Smith

+0

如果你有4行,那麼我猜你在用戶表中有兩次相同的行。請從用戶選擇*來檢查。清理你的表或做一個獨特的查詢,如'select distinct u1.name borrower ...' – MrSimpleMind

+0

謝謝,我發現其中一個數字有重複的記錄 – Smith