根据表优先级获取mysql结果

时间:2014-11-25 04:43:43

标签: mysql join sql-like

在我的网站上,我想实现一个live data search。我有两个表table_atable_b

table_a包含主要数据,table_b包含从table_a引用的子数据。

我得到了结果。但是联接会使table_b数据变得重要。

我想将数据作为

1。如果table_a具有特定结果,请使用相应的table_b数据显示该结果。

  1. 如果table_a没有值,则显示table_b数据(如果有)
  2. 我现在正在执行的查询是

    SELECT
        a.aname,
        b.bname
    FROM 
        table_a AS a
    JOIN table_b AS b ON b.a_id_fk = a.a_id
    WHERE
        (a.a_name LIKE '%a%' OR b.b_name LIKE '%a%')
    

    我知道这不会根据我的需要得出结果。

    有没有办法用单个查询执行此操作?

    任何帮助将不胜感激..谢谢大家。

1 个答案:

答案 0 :(得分:0)

如果table_a没有该值,则显示table_b数据(如果有)

如果我理解正确

SELECT
   case when a_id is null then  b.bname else  a.aname end as name,

FROM 
   table_b AS b left join table_a AS a
 ON b.a_id_fk = a.a_id
WHERE
    (a.a_name LIKE '%a%' OR b.b_name LIKE '%a%')