2012-05-16 38 views
0

我有一個表,如下結構和值:MySQL查詢 - 多位置

location_id, location_name, parent_id 

1,   USA,   0 
2,   Illinois,  1 
3,   Chicago,  2 
4,   New York,  1 

在這個片段,然後一行'USA'將被視爲一個國家,因爲parent_id值爲0。但是,如果parent_id有一些其他的價值,那麼它將表示特定的位置在某個位置。我們有多個級別的位置,並沒有設置。它可以是2級,3級,4級,等等

對於離。 美國>阿拉巴馬>阿拉巴馬州墨西哥灣沿岸>格爾夫海岸

我需要得到所有的location_id條目,沒有更多的位置。所以在上面的例子中,我應該得到「海灣海岸」的答案。

我認爲解決的辦法應該是這樣的:

SELECT location_id FROM location WHERE "(parent_id does not contain any value from location_id)" 

但我想不出確切的語法。我應該如何實現這一點?

回答

1
select location_id from location l 
    where not exists 
    (select null 
    from location 
    where parent_id = l.location_id);