2015-01-03 3 views
1

질문은 내가 전에 묻는 질문과 관련,하지만 난 약간의 도움을 필요로한다 ...SQL C#을 필터 비슷한 기록

내가 SeekersEmployers에 대한 이해를 저장하는 관심 테이블을 가지고 ...

관심 테이블은 같은 것입니다 : 탐구자가 로그인

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 
6   3   1   2 

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

그래서 때, 내가 찾는 로그인 한 유사 관심사가 EMPLOYER 이름을 ... 검색하려고

내가 잘 작동 코드를 가지고, 내가 원하는 OUTPUT ..

SqlConnection myConn2; 
SqlCommand myCommand2; 
SqlDataReader myReader2; 
String SQL2, divjobs; 

myConn2 = new SqlConnection(WebConfigurationManager.ConnectionStrings["ApplicationServices"].ToString()); 
divjobs = "<ul>"; 
myConn2.Open(); 
SQL2 = "SELECT ins.int_id, ins.FK_is_ID, ine.FK_ie_ID,emp.e_name,ine.int_id FROM Interests ins INNER JOIN Interests ine ON ins.FK_ic_ID = ine.FK_ic_ID FULL OUTER JOIN employers emp ON emp.e_id=ine.FK_ie_id WHERE ins.FK_is_ID = @sid AND ine.FK_ie_ID IS NOT null order by emp.e_name ASC"; 

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

myReader2 = myCommand2.ExecuteReader(); 

if (myReader2.HasRows) 
{ 
    while (myReader2.Read()) 
    { 
     divjobs = divjobs + "<li>" + "<a href='../employers/viewemployer.aspx?EID=" + myReader2["FK_ie_id"] + "'>" + "<div class='jtitle'>" + myReader2["e_name"] + "</div>" + "</li>"; 
    } 
    divjobs = divjobs + "</ul>"; 
    joblist.InnerHtml = divjobs; 
} 
else 
{ 
    joblist.InnerHtml = "<div style='font-weight:bold;padding:20px;font-size:1.2em;background-color:white;'>"+ "Looks like there is nothing to load!" + "</div>"; 
} 

myConn2.Close(); 

을 제공 유일한 문제 고용주가이 이익이있는 경우, 출력이 동일한 고용주 이름을 두 번 제공합니다! 한 번만오고 싶다 ...!

어쨌든 그것을 할 수 있습니까, 어떤 도움을 주시면 감사하겠습니다 ...?

답변

1

현재 결과는 "관심도"수준이지만 실제로는 고용주 수준에서 원하는 결과입니다. 다음은 관심 분야가 일치하는 고용주의 고유 목록을 반환합니다. 각 일치 관심사 :

SELECT 
    ins.FK_ie_ID, 
    emp.e_name, 
    COUNT(ins.int_id) AS InterestCount 
FROM 
Interests ins 
INNER JOIN 
Interests ine 
    ON ins.FK_ic_ID = ine.FK_ic_ID 
INNER JOIN 
employers emp 
    ON emp.e_id = ine.FK_ie_id 
WHERE 
    ins.FK_is_ID = @sid 
GROUP BY 
    ins.FK_ie_ID, 
    emp.e_name 
order by emp.e_name ASC 

내가 원하는 것을 올바르게 해석했으면합니다.

또한 열 이름 지정이 매우 어색한 것으로 나타났습니다. 이 때문에 쿼리에 오타가있을 수 있습니다. 그들이 너무 비밀 스럽거나 ... 통제 할 수없는 이유가 있습니까?

+0

고마워요. 그게 내가 찾고 있던 것 ... 열 이름에 관해서는, 난 그냥 무작위로 그들에게 권위를 지어 줬어. – Rifshan