Web ページの URL とそれらの接続 (ハイパーリンク) をそれぞれ格納するページとハイパーリンクの 2 つのテーブルがあります。Page テーブルには、すべての一意のエントリに対して AUTO_INCREMENT である page_id 列があります。ハイパーリンク テーブルでは、ハイパーリンクのソースと宛先の両方に page_id を使用します。
表: ページ
page_id | page_url
--------------------
1 | a.com
2 | b.com
3 | c.com
4 | d.com
表: ハイパーリンク
hyperlink_id | source_id | destination_id
1 | 1 | 2
2 | 1 | 3
3 | 2 | 4
4 | 4 | 4
hyperlink_id を指定すると、a.com と b.com の 2 つの文字列を連続して返す ResultSet を取得したいと考えています。hyperlink_id が 1 であると仮定しましょう。
以下のクエリを使用してみましたが、うまくいかないようです。
SELECT Page.page_url, Page.page_url from Hyperlink
JOIN Page
ON Page.page_id = Hyperlink.source_id
AND Page.page_id = Hyperlink.destination_id
where Hyperlink.hyperlink_id = 1
このクエリは、空の ResultSet を返しました。
ただし、このクエリは hyperlink_id = 4 で機能しましたsource_id != destination_id
。SELECT ステートメントの何が問題になっていますか?