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_oneに存在するため、 fromtable_twoの値を取得して、それを変数 query1 に割り当てようとしています。abctable_onecond = 1

query2 を使用して、reqfromの値を取得しようとしていますtable_two。これにより、abcintable_twoの値は query1 の値と等しくなります。

これについて何か助けはありますか?

query2 からのエラー メッセージ:

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

このようにテーブルを結合すると、通常はより効率的で正確な 1 つのクエリで実行できます (つまり、データベース テーブルは 2 つのクエリ間で変更されません)。

于 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 に答える