2014-03-12 71 views
0

如果我有以下查詢:運行子查詢?

SELECT, cat_name, cat_id, cat_url_title, cat_image, cat_order 
FROM exp_categories 
WHERE parent_id = '1' 
ORDER BY cat_order 

和「CAT_ID」返回如下:

3,4,5,6

是否有可能運行一個子查詢來檢查每個循環如果返回的'cat_id'完全在'parent_id'列中?我只想返回'0'或'1'或'y'或'否'。

+0

爲了實現這個使用'CASE'聲明。 –

+0

你想檢查3,4,5,6 = 1嗎?它將不返回所有。 – Mihai

+0

@Mihai我想檢查'parent_id'列中是否存在這些'cat_id'。如果是這樣,請返回1表示是,否則返回0表示否。我需要在每個循環中發生這種情況,例如檢查3,然後是4等 – ccdavies

回答

1

使用LEFT JOINFIND_IN_SET

SELECT a.cat_name, a.cat_id, a.cat_url_title, a.cat_image, a.cat_order, 
     MAX(b.parent_id IS NOT NULL) AS cat_in_parent 
FROM exp_categories AS a 
LEFT JOIN exp_categories AS b ON FIND_IN_SET(b.parent_id, a.cat_id) 
GROUP BY a.cat_name 
ORDER BY cat_order