2014-11-25 101 views
0

在我的網站上,我想實施一個live data search。我有兩個表table_atable_b根據表優先獲取mysql結果

table_a有主要數據,並且table_b有從table_a引用的子數據。

我得到結果。但是加入對於table_b數據非常重要。

我想獲得的數據作爲

1.如果table_a有特定的結果,則表明其對應的table_b數據。

  • 如果table_a不具有值,則顯示table_b數據如果任何
  • 其中我現在執行該查詢是

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

    我知道這不會根據我的需要取得結果。

    有沒有辦法用單個查詢來做到這一點?

    任何幫助將不勝感激..謝謝大家。

    回答

    0

    如果表-A沒有價值,然後顯示錶-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%') 
    
    +0

    感謝您的答覆。不完全是你的觀點。我可能在'table_a'和'table_b'中都有值。但我需要在'table_a'中顯示值,因爲它具有優先 – Arun 2014-11-25 05:56:47

    +0

    顯示相同的樣本記錄@Arun – Sathish 2014-11-25 08:46:54