2012-09-25 66 views
1

我試圖從兩個表中加入數據,其中表1的用戶標識位於表2中。 我嘗試了多種變化,沒有運氣,並在SO上讀了十幾篇文章這個話題。mySQL從兩個表中的每一個連接3列

表1中的數據有一個ID,用戶名,rolerequest和appuserid。我選擇最後三項,並嘗試加入表3中的3項,當表1中的應用等於表2的用戶ID時。

這是我最近的嘗試;

SELECT username, rolerequest, appuserid 
FROM userrolespending 
LEFT JOIN my_aspnet_membership.email,my_aspnet_membership.creationdate,my_aspnet_membership.lastlogindate 
where my_aspnet_membership.userid = userrolespending.appuserid; 

回答

1

在這種情況下,你不需要使用LEFT JOIN因爲你只想要回userid是兩個表中存在。 INNER JOIN返回所有表格上都存在ID或鏈接列的記錄。

SELECT a.*, b.*  -- <== select the columns you want to appear 
FROM userrolespending a 
    INNER JOIN my_aspnet_membership b 
     ON a.appserid = b.userID 

或者準確的說,

SELECT a.username, a.rolerequest, a.appuserid, 
     b.email,b.creationdate, b.lastlogindate 
FROM userrolespending a 
    INNER JOIN my_aspnet_membership b 
     ON a.appserid = b.userID 
+0

這將檢索每個表中的所有列,但我只希望從每個3個特定的列。 – dinotom

+0

@dinotom是的,這就是爲什麼我表示你需要選擇你想要的列。例如,'SELECT a.username,a.rolerequest,a.appuserid,b。* ...'我不知道列的名稱。 –

+0

@dinotom看到我更新的答案。 –

0

我覺得這是你所需要的:

SELECT username, rolerequest, appuserid 
FROM userrolespending 
LEFT JOIN my_aspnet_membership 
on my_aspnet_membership.userid = userrolespending.appuserid; 
+0

這將返回來自成員資格表的所有列是否正確?我只是試圖檢索3列,電子郵件creationdate和lastlogindate – dinotom

+0

然後,但他們在您的選擇 示例,SELECT電子郵件,creationdate,lastlogindate – AboQutiesh