2012-06-11 52 views
1

我目前有2张表格。表1是门票,表2是回扣。SQL - 搜索2个表格并返回一个结果

我目前做

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

这工作,但我也想返回相同的领域,但在那里打招呼响应表中的信息字段相匹配。

E.g.我希望我能做到:

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

响应表中的ticketid与ticket表中的id相同。

回答

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%' 
+0

是的,这很有用,谢谢!我错过了括号,显然他们使所有的区别! – jonny

+0

投给我,老兄! – Tony

+0

他不能;他没有声望。不过,他可以接受你的回答。 – SimplyPanda

0

如果我的理解正确,您只需要票表中的结果?您可以使用tableName.*或使用tableName.columnName来获取该原始表的结果。

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%') 
+0

嗨,是你理解的权利及以上就是我试过,但它只是挂(还我把ANDS等) – jonny

+0

对不起,不得不作出更正。现在编辑。 – Seth

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%'; 

[修正] LEFT JOIN

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%' 
相关问题