1
私はmysqlデータベースに何かlike thisが必要です。sqlのセルフテーブルに親を取得する方法はありますか?
私はこの試みた:
SELECT parent.ID
FROM mytable as child
JOIN mytable as parent
ON child.FIRST_REFERENCE = parent.ID
WHERE parent.FIRST_REFERENCE = '-1' AND child.ID = '6'
を私はたchildIDがルートを参照している場合たchildID、または子供と根を返す必要が
ID | FIRST_REFERENCE | description
1 | -1 | root
2 | 1 | other_child
3 | -1 | root
4 | 2 | child
5 | 1 | other_child
6 | 3 | child
:から私の場合は
は、私が取得する必要があります
しかし、それは動作しません
そして、私は選択したケースで解決策を試しました:
SELECT
CASE FIRST_REFERENCE
WHEN '-1' THEN ID
ELSE SELECT rec.ID
FROM mytable as rec
WHERE rec.ID = main.FIRST_REFERENCE
END as 'root'
FROM mytable as main
WHERE childID = '6'
ただし、構文エラーが発生します。
どこが間違っていますか?
を? – etsa
MySQLは残念ながらSQLサーバのような再帰的クエリをサポートしていません。 –
あなたは見ることができます:http://guilhembichot.blogspot.it/2013/11/with-recursive-and-mysql.html – etsa