mysql查询列中的相等值

时间:2012-05-02 12:06:51

标签: mysql

我有下表

| id | title    | parent |
------------------------
|  1 | example  |   0    |
|  2 | example2 |   2    |
   3   example3     3
   4   example4     2
   5   example5     2

如何在title字段的函数中进行查询以获取parent_id值相等的所有行。

示例:显示与匹配parent的行具有相同title="example2"的所有行。

应该回馈

2 | example2 | 2
4 | example4 | 2
5 | example5 | 2

3 个答案:

答案 0 :(得分:1)

当您只有title作为参数并希望所有与同一parent_id相关的行时,您可以使用子查询:

SELECT * FROM tbl WHERE parent IN (SELECT parent FROM tbl WHERE title = "example2")

或者您可以使用self-join基本实现相同的目标:

SELECT related.* 
FROM tbl source
LEFT JOIN tbl related ON source.parent = related.parent
WHERE source.title = "example2"

答案 1 :(得分:0)

你的问题有点令人困惑:

如果你想要父亲为2的结果,那么使用(如mattytommo建议的那样):

 SELECT * FROM table
 WHERE parent = 2

如果您希望父级等于id的结果,请使用:

SELECT * FROM table
WHERE id = parent

答案 2 :(得分:0)

我认为您试图说“给我所有与我的匹配行具有相同父ID的行”,这将是此查询:

select t2.*
from table t1
join table t2 on t2.parent = t1.parent
where t1.title = 'example2'