C#过滤类似表记录SQL

时间:2014-12-28 09:11:06

标签: c# mysql sql filter

有一个搜索者表,雇主表,类别表,兴趣表......

兴趣表根据他们感兴趣的类别存储求职者和雇主的利益......并使用外键......

FK_is_id = Seeker ID
FK_ie_id = Employer ID
FK_ic_id = Category ID

所以数据存储如下:

int_id   FK_is_ID  FK_ie_ID  FK_ic_ID
1           2          null      3
2           2          null      5
3           null       1         3
4           null       3         1
5           null       2         5
6           4          null      1

现在,该表显示搜索者2喜欢类别2和5

雇主1喜欢第3类,雇主2喜欢第5类,雇主3喜欢第1类......

它还表明,寻求者2和雇主1有相似的兴趣和寻求者2,雇主2也有相同的兴趣......

搜寻者4和雇主3有相同的兴趣..

所以我需要的是依赖搜索者ID,显示与寻求者有相同兴趣的雇主。

例如:如果给出S ID(来自搜索者表)2,则显示雇主1和雇主2与他有相同的兴趣!

我正在使用此代码列出webform上的雇主名称..所以我缺少的是SQL Logic ..任何帮助都是适当的!

String ssid;
ssid = Request.Cookies["UserSettings"]["sid"];
SqlConnection myConn2;
SqlCommand myCommand2;
SqlDataReader myReader2;
String SQL2, divjobs;
myConn2 = new SqlConnection(WebConfigurationManager.ConnectionStrings["ApplicationServices"].ToString());
divjobs = "<ul>";
myConn2.Open();
SQL2 = "";

myCommand2 = new SqlCommand(SQL2, myConn2);
myCommand2.Parameters.AddWithValue("@sid", ssid);
myReader2 = myCommand2.ExecuteReader();

while (myReader2.Read())
{
divjobs = divjobs + "<li>" + myReader2["e_name"] + "</a>" + "</li>";
}
divjobs = divjobs + "</ul>";
latestEmp.InnerHtml = divjobs;
myConn2.Close();

1 个答案:

答案 0 :(得分:1)

我仍然不确定您的RDBMS是否符合上述评论,但此Sql Fiddle here将返回搜索者ID主题的员工ID数据(我已针对学生ID 2进行了过滤) 。您尚未向我们提供您的员工或学生表,因此您需要加入这些表格才能从您的读者中提取e_name等字段。我刚刚拉下了FK_ie_ID外键。

要将其拉入您的应用程序,您需要将@sid参数绑定到查询。另请注意,SqlCommands和Readers是IDisposable。

最后,如果您选择的RDBMS是MySql而不是Sql Server,则需要引用相应的MySql库并将SqlConnection更改为MySqlConnectionSqlCommand更改为{{1} }。

MySqlCommand