2013-03-08 61 views
0

組合我無法通過MYSQL中的表連接獲取語法。我有如下兩個表...MYSQL加入並由

primary_table 

agent_id | primary_area | key 
----------------------------- 
    10 |xx1   | 1 
    11 |xx2   | 2 
    12 |xx3   | 3 
etc... 


secondary_table 

agent_id | sec_area  | key 
----------------------------- 
    34 |xx1   | 5 
    37 |xx1   | 6 
    38 |xx7   | 8 
etc... 

所有我試圖做的是搜索(例如)對於具有XX1作爲兩個primary_area和「sec_area」值的agent_id兩個表。我需要使用LIKE,因爲這是一個搜索功能,用戶可能希望搜索所有具有價格xx的所有商品。

然後返回的數據需要按agent_id分組,並保存在一個數組中。

+0

什麼是你想要的結果? – 2013-03-08 11:56:50

+1

某些方向的SELECT * FROM primary_table WHERE agent_ID LIKE%$ search UNION SELECT * FROM secondary_table WHERE agent_ID LIKE%$ search' – AmazingDreams 2013-03-08 11:58:36

+0

希望的結果是選擇與兩個表中的say xx1搜索相匹配的代理id,然後通過代理ID對它們進行分組。 – Sideshow 2013-03-08 12:19:41

回答

1

這是怎麼回事?

SELECT agent_id FROM primary_table WHERE primary_area LIKE "%1" 
UNION 
SELECT agent_id FROM secondary_table WHERE sec_area LIKE "%1" 

Comment: how would I group the results by agent_id using UNION

SELECT 
    p.id 
FROM 
    primary_table AS p 
JOIN 
    sec_table AS s 
ON 
    p.id=s.id 
WHERE 
    p.area LIKE "%1" AND s.area LIKE "%1" 

SQL Fiddle

+0

謝謝 - 我如何使用UNION將agent_id的結果分組。 – Sideshow 2013-03-08 12:20:29

+1

我更新了我的回答,考慮到了這一點,@Sideshow。你也可以檢查SQL小提琴。 – fedorqui 2013-03-08 12:31:33