2010-11-18 1 views

답변

0

스키마가 이상하게 보일 때 귀하의 질문을 이해할 수 있는지 잘 모르겠습니다.

그러나, 당신이하고 싶지 같은 소리 :

  • Dropdown1 : 표시 jname jcode가 J2 세포에 있습니다 jcode이 heardt에서 J1 셀에
  • Dropdown2 입니다 표시 jname heardt
  • Dropdown3의 : 쇼 jcode이 heardt에 J3 셀에 jname

이 쿼리가 될 수 있다고하려면 :

select jname, jcode 
from heardt 
inner join jud ON heardt.j1 = jcode 

select jname, jcode 
from heardt 
inner join jud ON heardt.j2 = jcode 

select jname, jcode 
from heardt 
inner join jud ON heardt.j3 = jcode 

대안을 당신은 모든 heardt 행을 원한다면, 당신이 관심을 수있다과 일치하는 세 jnames은 당신이 할 수 있습니다 :

jud table 
--------- 
jcode 
jname 

heardt table 
------------ 
unsure on the purpose of this table 

dropdown table (name this after whatever your dropdowns represent, maybe this is heardt) 
---------- 
dropdownId 

dropdownjuds table 
------------- 
dropdownId 
jcode 

아래 같은 쿼리를 할 수있는 그런 식으로,와 y를 :

select jud1.jname as jname1, jud2.jname as jname2, jud3.jname as jname3 
from heardt 
left join jud as jud1 on jud1.jcode = heardt.j1 
left join jud as jud2 on jud2.jcode = heardt.j2 
left join jud as jud3 on jud3.jcode = heardt.j3 

그러나, 더 나은 솔루션 (더 좋은 이름을 선택) 다음과 같은 테이블을 만드는 것 ou는 드롭 다운 당 열을 저장하지 않습니다. 예를 들어, 나중에 갑자기 j4이 필요하면 어떻게해야합니까?이 방법을 사용하면 dropdown 및 관련 항목을 dropdownjuds 테이블에 추가 할 수 있습니다. 드롭 다운의 수가 고르지 않으면 어떻게 될까요? 현재 널 (null)을 사용하고 있지만 행에 j2 만있는 경우 j1j3 열이있는 이유는 무엇입니까? 제안 된 디자인으로이 문제를 해결할 수 있습니다. dropdown2 등 *이 dropdown1에 대한 1

select jname 
from dropdownjuds ddj 
inner join jud on ddj.jcode = jud.jcode 
where dropdownId = * 

, 2

+0

감사합니다. 내 질문에 대한 정확한 이해. – Ishan

+0

각 쿼리에 대한 첫 번째 제안에서 문자열을 사용하여 값을 저장하고 Dropdownlist에 전달할 수 있습니다. 두 번째 방법은 어떻게합니까? – Ishan

+0

두 번째 쿼리는 단일 드롭 다운 목록에 적합하지 않습니다. 코드의 잘못된 콤보 상자에 연결하려는 경우가 아니라면 'jname1'또는 'jname3'을 올바르게 사용할 것인지 어떻게 알 수 있습니까? 첫 번째 쿼리 또는 제안 된 스키마 개정판을 사용합니다. –

0

당신은 요구 사항 (표에서 일부 데이터를주고 같은 데이터의 관점에서 예상되는 출력을 보여주는) 정교한 경우, 그것은 것 도움.

입력 집합 (j1, j2, j3)의 이름을 얻기 위해 쿼리를 사용하려면이 경우 내부 쿼리 또는 다중 조인이 있어야합니다.

select h.j1, hj1.jname, hj1.jcode, h.j2, hj2.jname, hj2.jcode, h.j3, hj3.jname, hj3.jcode 
from heardt as h 
inner join jud as hj1 ON h.j1 = hj1.jcode 
inner join jud as hj2 ON h.j2 = hj2.jcode 
inner join jud as hj3 ON h.j3 = hj3.jcode 
where [email protected] and [email protected] and [email protected] 
관련 문제