2

フォームの送信を記録するテーブルがあります。フォームの送信ごとに、次の変数があります。

userid
record
accountName
accountNumber

ユーザーがフォームを送信すると、テーブルにはrecord各ラインアイテムの値が入力されます。つまり、値はすべて値によって一般的にリンクされていrecordます。、およびを列としてINNER JOIN表示するテーブルに結果をフィルター処理しようとしています。私はこのコマンドに非常に近いです:useridaccountNameaccountNumber

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'

唯一の問題は、結果がエントリごとに1つに制限されていないことです。テーブルに複数のインスタンスが表示されているようです。

WHERE声明の一部を編集する必要があると思います。結果が名前の値を取得して結果をフィルタリングしていないように思われます。これを解決する方法について何か提案はありますか?


更新しました:

ここに示すように、呼び出しに2つの行のみを含めると、適切なフィルタリング結果が得られることを追加する必要があります。

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'

それは私が何から来ているのかを示すのに役立つかもしれないと思った。だから、一般的にそれはuserid私に問題を与えている変数を追加することと関係があります

4

1 に答える 1

2

私はあなたが何を必要としているかを理解するのに苦労していますが、多分これはそれです。

SELECT t1.value AS number, t2.value AS name, t3.value AS userid

FROM mytable AS t1

INNER JOIN mytable AS t3 ON t1.record = t3.record

INNER JOIN mytable AS t2 ON t1.record = t2.record

WHERE t1.name = 'addAccountNumber'

AND t2.name = 'addAccountName'

AND t3.name = 'userid'
于 2013-03-26T22:08:46.077 に答える