2014-10-06 65 views
0

以下是我對藝術家表 -添加列結果

id name sex 
1 harsh male 
2 geet female 

以下是我對事件表 -

id artist_id created_by 
2 2   16 
2 2   17 

以下是我的查詢 -

SELECT * FROM `events` WHERE artist_id IN (SELECT id FROM `artists` WHERE name LIKE '%$search_term%') 

但除了事件數據我需要在結果中獲得藝術家的名字,請讓我知道我需要改變什麼ry,因爲我試過*, artists.name它不會工作。

+0

可能重複(http://stackoverflow.com/questions/141278/subqueries-vs-連接) – Juru 2014-10-06 18:59:48

回答

1

嘗試此查詢

SELECT e.* 
FROM `artists` AS a 
JOIN `events` AS e ON e.artist_id = a.id 
WHERE a.name LIKE '%$search_term%'; 
1

你需要從兩個表中同時選擇。使用join

SELECT artists.name, events.* 
FROM artists 
INNER JOIN events 
    ON artist.id = artist_id 
WHERE 
    name LIKE '%search_term%' 
1

使用join代替[子查詢VS加入]的IN

SELECT 
    e.*, 
    artists.name 
FROM 
    `events` e 
    inner join `artists` a on e.artist_id = a.id 
WHERE 
    name LIKE '%$search_term%'