0

我的 grails 控制器上有以下 2 个 SQL 查询:

def query1 = sql.rows("select abc from table_one where cond = 1")

query1 的返回结果给了我[{abc=5}]

def query2 = sql.rows("select req from table_two where abc = " +query1)

我在尝试运行 query2 时出错,我不知道为什么。

列名abc同时存在于table_onetable_two中,我试图从中获取值abctable_one借此cond = 1,并将其分配给变量 query1。

对于 query2,我试图获取reqfromtable_two的值,其中abcintable_two的值等于 query1 的值。

有什么帮助吗?

来自查询 2 的错误消息:

Message:Unclosed quotation mark after the character string '[abc:5]'.
4

2 回答 2

1

为什么不使用以下查询:

select  table_two.req
  from  table_one,
        table_two
 where  table_one.cond = 1
   and  table_one.abc  = table_two.abc

像这样连接表允许您在一个查询中完成,这通常更有效且更正确(即,数据库表不会在两个查询之间更改)。

于 2012-10-23T02:08:13.580 回答
0

你加入表格使用INNER JOIN

select  b.req
from    table_one a
        INNER JOIN table_two b
            ON a.abc = b.abc
where   a.cond = 1

以下语法是ANSI SQL-92.

于 2012-10-23T02:11:50.037 回答