2013-03-26 77 views
1

我有一个记录表单提交的表。对于具有以下形式的每个提交有下列变量:如何筛选INNER JOIN SQL命令结果

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' 

唯一的问题是结果不限于每个条目。看起来多个实例正在桌面上显示。

我相信需要对声明的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' 

思想,可以帮助显示什么我来自。所以,总的来说,这与添加userid变量给我带来的麻烦有关

+0

第一个JOIN是否应该有ON? – 2013-03-26 22:08:45

+0

,或者它需要在from语句中。 – RandomUs1r 2013-03-26 22:36:52

回答

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' 
+0

谢谢!这样做:) – Presto 2013-03-27 06:27:02