2012-05-23 101 views
0

我有一個問題,如何將數據綁定到C#中的datagridview時,與mySql數據源一起使用JOIN查詢時,我從第一個表和0-2記錄返回一個唯一記錄第二張桌子。我的查詢如下:C#datagridview與多個表連接查詢

SELECT t1.*, t2.org_id, t2.org_name 
FROM test.tbl_user_accounts AS t1 
INNER JOIN test.tbl_organizations AS t2 
ON t1.affiliation_one = t2.org_id OR t1.affiliation_two = t2.org_id; 

這是一所學校ASSOCATION,其中用戶最多可與兩所學校有關。我希望學校能夠在不同的單元格中顯示,因此GROUP_CONCAT並不是一個好選擇,如果我在t1.user_id字段上使用GROUP BY,則會失去第二個聯繫。如果我不分組,我最終會爲同一個用戶創建兩行。

我不是所有人都熟悉連接,所以有可能不同類型的連接可以解決這個問題?

我正在使用Visual C#2010和mySql數據源。

+0

可以告訴你結果的一個例子,你正在使用,使querys –

回答

0

下面是我用來解決這個問題的查詢(我想我實際上是在另一個棧文章中找到它的)。

SELECT test.tbl_user_accounts.*, t2.org_name as affil_one, t3.org_name as affil_two,t4.rank_name as rank_name 
FROM test.tbl_user_accounts 
LEFT JOIN (test.tbl_organizations as t2) ON (t2.org_id = test.tbl_user_accounts.affiliation_one) 
LEFT JOIN (test.tbl_organizations as t3) ON (t3.org_id = test.tbl_user_accounts.affiliation_two) 
LEFT JOIN (test.tbl_ranks as t4) ON (t4.id_rank = test.tbl_user_accounts.user_rank);