1

現在、チケット用に2つのテーブルがあります。表 1 はチケット、表 2 は応答です。

私は現在

select id, subject, description 
from tickets 
where subject like '%hello%';

これは機能しますが、同じフィールドを返したいのですが、hello は応答テーブルのメッセージ フィールドと一致します。

たとえば、私ができることを望んでいました:

select id, subject, description 
from tickets, responses 
where tickets.subject like '%hello%' OR responses.message like '%hello%'; 

応答テーブルの ticketid は、チケット テーブルの id と同じです。

4

4 に答える 4

0

おそらく左参加が必要です-

select id, subject, description 
from tickets left join responses on tickets.id = responses.ticketid
where tickets.subject like '%hello%' OR responses.message like '%hello%';

【訂正】LEFTJOIN

于 2012-06-11T14:22:06.560 に答える
0

テーブルを結合する必要があります。

SELECT `tickets`.`id`, `tickets`.`subject`, `tickets`.`description`, `responses`.`message` 
LEFT JOIN `responses` ON `tickets`.`id` = `responses`.`id` 
WHERE `tickets`.`subject` like '%hello%' OR responses.message like '%hello%'
于 2012-06-11T14:23:02.860 に答える
0

応答レコードが常に存在する場合:

  select tickets.id, tickets.subject, tickets.description 
  from tickets, responses 
  where
    tickets.id = responses.id and
    ( tickets.subject like '%hello%' or 
      responses.message like '%hello%' )

応答なしでチケットが存在する可能性がある場合:

  select tickets.id, tickets.subject, tickets.description 
  from tickets left outer join responses on tickets.id = responses.id
  where
    tickets.subject like '%hello%' or 
    responses.message like '%hello%'
于 2012-06-11T14:23:03.210 に答える