0

我有一个关于如何在 C# 中使用带有 mySql 数据源的 JOIN 查询时将数据绑定到 datagridview 的问题,我从第一个表返回一个唯一记录,从第二个表返回 0-2 条记录。我的查询如下:

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;

这是一个学校协会,一个用户最多可以与两所学校相关联。我希望学校显示在单独的单元格中,因此 GROUP_CONCAT 并不是一个好的选择,如果我在 t1.user_id 字段上使用 GROUP BY ,那么我将失去第二个从属关系。如果我不分组,我最终会为同一用户提供两行。

我对连接不是很熟悉,所以不同类型的连接可能会解决这个问题?

我正在使用带有 mySql 数据源的 Visual C# 2010。

4

1 回答 1

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);
于 2012-06-22T18:01:41.903 回答