양식 제출을 기록하는 테이블이 있습니다. INNER JOIN SQL 명령 결과를 필터링하는 방법
userid
record
accountName
accountNumber
사용자가 양식을 제출
이 테이블은 각 개별 항목에record
값으로 채워집니다 : 양식의 각 제출을 위해 다음과 같은 변수가있다. 즉, 값은 일반적으로 모두
record
값으로 연결됩니다. 사용자
INNER JOIN
을 사용하여
userid
,
accountName
및
accountNumber
을 열로 표시하는 테이블에 결과를 필터링하려고합니다. 이 명령에 매우 가깝습니다.
SELECT t1.value AS number, t2.value AS name, t3.value AS userid
FROM mytable AS t1
INNER JOIN mytable AS t3
INNER JOIN mytable AS t2 ON t1.record = t2.record
WHERE t1.name = 'addAccountNumber'
AND t2.name = 'addAccountName'
AND t3.name = 'userid'
유일한 문제는 결과가 항목 당 하나씩으로 제한되지 않는다는 것입니다. 여러 인스턴스가 테이블에 표시되고있는 것 같습니다.
나는 진술의 WHERE
부분에 약간의 편집이 필요하다고 생각한다. 결과가 이름 값에 반영되지 않고 결과를 필터링하지 못하는 것 같습니다. 이 문제를 해결하는 방법에 대한 제안 사항이 있으십니까?
업데이트 :
내가 여기에서 볼 수 있듯이 나는 단지 호출에서 두 개의 행을 포함 할 때 적절한 필터링 결과를 얻을 할 것을 추가해야합니다 : 보여 도움이 될 수 있습니다
SELECT t1.value AS accountNumber, t2.value AS accountName
FROM mytable AS t1
INNER JOIN mytable AS t2
ON t1.record=t2.record WHERE t1.name='addAccountNumber' AND t2.name='addAccountName'
생각했던 나는 온다. 따라서 일반적으로 문제가되는 변수를 추가하는 것과 관련이 있습니다.
첫 번째 JOIN에 ON이 있어야하나요? –
또는 from 문에 있어야합니다. – RandomUs1r