在同一个表中获取相关的行?

时间:2014-05-06 13:29:19

标签: mysql database database-design phpmyadmin

我正在努力解决这个问题。我需要的是从相同的表中选择一行和其他行。以下是该表的示例:

table
key    |    value    |    related
=================================
1      |    omg      |    0
2      |    lol      |    0
3      |    rofl     |    2
4      |    barfoo   |    0
5      |    foo      |    0
6      |    bar      |    0
...
20000  |    haha     |    2

(其中相关的“2”是“lol”的行键)

所以在我这样做的情况下(不是同时):

SELECT * FROM table Where value='lol'

或者

SELECT * FROM table Where value='rofl'

或者

SELECT * FROM table Where value='haha'

它应该返回:

key    |    value    |    related
=================================
2      |    lol      |    0
3      |    rofl     |    2
20000  |    haha     |    2

任何想法的人?

非常感谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

Select * From table t 
Where Exists 
   (Select * From Table
    where value = @theValue
       and valueKey in (t.ValueKey, t.related))