2

私は 1 つのテーブルチケットと他のテーブルログを持っています。ticketの各行には多くのログがあります。特定の文字列がログに含まれているかどうかを知りたいのですが、チケットから 1 つのレジスタをフェッチします。現時点で私が持っているものは次のとおりです。

SELECT ticket.id,ticket.description,ticket.owner 
FROM ticket
JOIN log
ON (log.ticketid=ticket.id)
where log.description LIKE '%someparameter%'

この場合、どうすればよいですか?

4

3 に答える 3

2

SQL制限オプションを使用してみてください。

SELECT ticket.id,ticket.description,ticket.owner 
FROM ticket
JOIN log
ON (log.ticketid=ticket.id)
where log.description LIKE '%someparameter%'
LIMIT 1;
于 2012-11-23T16:08:12.757 に答える
1
SELECT
  *
FROM
  ticket
WHERE
  EXISTS (SELECT *
            FROM log
           WHERE log.ticketid = ticket.id
             AND log.description LIKE '%someparameter%'

または...

SELECT
  ticket.id, ticket.description, ticket.owner 
FROM
  ticket
INNER JOIN
  log
    ON (log.ticketid=ticket.id)
WHERE
  log.description LIKE '%someparameter%'
GROUP BY
  ticket.id, ticket.description, ticket.owner 
于 2012-11-23T16:50:40.663 に答える
0

LIMIT 1に相当する通常のDB2は、FETCH FIRST 1ROWSONLYです。

SELECT ticket.id,ticket.description,ticket.owner 
FROM ticket
JOIN log
ON (log.ticketid=ticket.id)
where log.description LIKE '%someparameter%'
FETCH FIRST 1 ROWS ONLY

次の方法でLIMIT構文を有効にすることもできます。

db2set DB2_COMPATIBILITY_VECTOR=4000

または:

db2set DB2_COMPATIBILITY_VECTOR=MYS
于 2012-11-23T18:24:04.643 に答える