mysql查询只询问第二个表格!=""

时间:2014-09-27 11:43:17

标签: php mysql sql

我有一个表客户:

id, firstname, lastname, companyname,title_id,salutation_id
1,Peter,Pan,1,1
2,Cindy,Crawfort,Tinysoft,0,1
3,,,Amaton,,,
..

和表格标题

id, name
1. Dr.
2. Dr. Prof.
...

和表格称呼

id name
1, Mrs.
2,Mr.
3,none

我想做的是,如果它不是空的话,我会做出一个给我正确称呼的查询。 我试过了:

select *
from customers
 where if(customer.name!="",customer.title_id=titles.id) and   
       if(customer.name!="",customer.salutation_id=salutations.id) ;

这意味着在标题中应该是正确的名称(如果存在)。但有时候,像亚马逊一样,你没有名字,只有公司名称才能加入。在这种情况下,公司名称应该只被推出。

输出应如下所示: 彼得潘先生 亲爱的Peter Pan博士或

MRS。 Crawfort 亲爱的克劳福夫人

或 亚马逊 亲爱的先生们或者女士们,

上述查询为空。任何的想法?谢谢! 海啸

1 个答案:

答案 0 :(得分:1)

您需要在left join子句中使用select和一些逻辑:

select c.*,
       (case when s.id is not null and s.id <> '' then s.name
             else t.name
        end) as CorrectSalutation
from customers c left join
     title t
     on c.title_id = t.id left join
     salutation s
     on c.salutation_id = s.id;