2015-12-10 41 views
0

我有一個表,看起來像這樣:如何用這個表結構實現MySQL的結果?

id content_id fields_id value_int value_string value_decimal 

351 3   1      204 
352 3   2      Western Cape  
353 3   3      Cape Town 

365 4   1      205 
366 4   2      District of Columbia  
367 4   3      Washington 

365 4   1      204 
366 4   2      Eastern Cape  
367 4   3      Jeffreys Bay  

此重複數千房源。

現在我想做的事情,就是編寫一個查詢,我喂ID(即204,這是一個國家ID) - fields_id 1.

然後,它必須給我的獨特列表的結果例如,針對國家ID 204的所有州/省(fields_id 2的值字符串)。

我的MySQL技能是基礎的,所以請你想一想如何在查詢中實現這一點?

+0

你能做出[SQL-ffidle(http://sqlfiddle.com/)?我不知道你想要什麼.. – Naruto

+0

@naruto我在這裏做了一個小提琴:http://sqlfiddle.com/#!9/bcfc6f/1但我真的不知道該怎麼做。人類語言:給我一個給定國家ID的省份名單(即204) - 在這種情況下,假設該國爲204,我希望得到一個結果,其值爲「西開普省」,「東開普省」。 – Jacques

+0

我覺得你需要重新安排你的餐桌... – Naruto

回答

1

此SQL語句會做你想要什麼:

SELECT w.id, w.value_string 
FROM Table1 o 
LEFT JOIN Table1 w ON w.id = (o.id + 1) 
WHERE o.value_string = '204' 
+0

謝謝你尼古拉,完美的作品。 – Jacques

0

試試這個。

Select distinct content_id from table_name where SUBSTRING('value_string',1,3)='204'; 

它給你所有與你的慾望信息相關的ID。