我有下表
| 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
答案 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'