2015-12-10 42 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。