0

私は次の表を持っています

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

タイトル フィールドの関数でクエリを作成して、parent_id の値が等しいすべての行を取得するにはどうすればよいですか。

例:parentに一致する行と同じ行をすべて表示しますtitle="example2"

返すべき

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

3 に答える 3

1

as 引数しかなく、titleそれに関連するすべての行がparent_id必要な場合は、サブクエリを利用できます。

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

または、基本的に自己結合を使用して同じことを達成できます。

SELECT related.* 
FROM tbl source
LEFT JOIN tbl related ON source.parent = related.parent
WHERE source.title = "example2"
于 2012-05-02T12:11:45.393 に答える
0

あなたの質問は少し混乱しています:

親が 2 の結果が必要な場合は、次を使用します (mattytommo が示唆するように):

 SELECT * FROM table
 WHERE parent = 2

親が id と等しい結果が必要な場合は、次を使用します。

SELECT * FROM table
WHERE id = parent
于 2012-05-02T12:08:48.790 に答える
0

「一致する行と同じ親IDを持つすべての行を教えてください」と言おうとしていると思います。これは次のクエリになります。

select t2.*
from table t1
join table t2 on t2.parent = t1.parent
where t1.title = 'example2'
于 2012-05-02T12:10:52.253 に答える