兄弟データを一回のSQLで取得する方法

DBのテーブルが親子関係にある時に、
あるデータの親データや子データを持ってくるのはSQLの基本です。

例えば親テーブルfamilies(科)のデータが

idname
1ネコ科
2イヌ科
3クマ科

子テーブルspecies(種)のデータが

idnamescientific_namefamily_id
1イエネコFelis catus1
2オオカミCanis lupus2
3ヒグマUrsus arctos3
4ホッキョクグマUrsus maritimus3
5ジャイアントパンダAiluropoda melanoleuca3

とあったときに、子データ『イエネコ』をキーに親データの科を調べようと思ったら

SELECT * FROM families WHERE id = (
  SELECT family_id FROM species WHERE name = "イエネコ"
)

逆に親データ『イヌ科』をキーに子データを全取得しようと思ったら

SELECT * FROM species WHERE family_id = (
  SELECT id FROM families WHERE name = "イヌ科"
)

ですよね。

では、例えば『ジャイアントパンダ』をキーに兄弟データであるヒグマやホッキョクグマのデータを持ってくるにはどうしたらいいでしょうか?

一回親データを検索してから子データを取ればいいんですけど、それだとSQLの呼び出し回数が二回になってしまうので、一回で呼びたい場合は?

……まあ、前の二つを見れば勘のいい方はすぐ気づくやつですけど。

SELECT * FROM species WHERE family_id = (
  SELECT family_id FROM species WHERE name = "ジャイアントパンダ"
)

親テーブルのIDを使いながら、親テーブルを見に行く必要はないわけですね。

これぐらい単純なテーブル構造だと「だから何だ」って言われそうですが、多数のテーブルを遡ってまた下って、みたいな構造のとき、ちょっとだけショートカットできてお得です。