错误: - 来自关键字未找到预期的位置

时间:2013-12-08 15:42:31

标签: mysql

SELECT A.CUSTNAME|| WHO IS HOLDING ||A.ACCNAME|| ACCOUNT ||T.TRATYPE|| THE AMOUNT ||T.AMT|| 
ON || T.t_DATE
FROM ACCOUNTHOLDER A,TRANSACTION T
ON(T.ACCNO=A.ACCNO)
WHERE  CUSTNAME='JAMES BOND'
/

我有两个表帐户持有人和交易表,其中accno很常见。 accountholder accno是主键,其他是外键。我需要句子形式的输出......

2 个答案:

答案 0 :(得分:1)

你可能正在寻找CONCAT() function,你的句子的自定义部分必须用单引号括起来,并在开头和结尾都有所需的空格:

SELECT CONCAT (
    A.CUSTNAME,
    ' WHO IS HOLDING ',
    A.ACCNAME,
    ' ACCOUNT ',
    T.TRATYPE,
    ' THE AMOUNT ',
    T.AMT,
    ' ON ',
    T.t_DATE
    )
FROM ACCOUNTHOLDER A
INNER JOIN TRANSACTION T ON T.ACCNO = A.ACCNO
WHERE CUSTNAME = 'JAMES BOND'

你的JOIN也不正确你要么使用显式方式并添加INNER JOIN和ON,要么用逗号分隔你的表并将条件放在WHERE子句中。

答案 1 :(得分:0)

您需要使用正确的join语法。除on子句外,还需要join语句。另外,看起来像字符串常量应该是单引号。并且,在MySQL中连接字符串的正确方法是使用concat()函数,而不是垂直条:

SELECT concat(A.CUSTNAME, ' WHO IS HOLDING ', A.ACCNAME,  ' ACCOUNT ', 
              T.TRATYPE, ' THE AMOUNT ', T.AMT,  ' ON ', T.t_DATE)
FROM ACCOUNTHOLDER A join
     TRANSACTION T
     ON T.ACCNO=A.ACCNO 
WHERE CUSTNAME = 'JAMES BOND';