このクエリは正常に機能しますが、実行に時間がかかりすぎます。xampp localhostで実行されています。
単純に、word= "何か" AND word != "別の何か" の webpage.id を選択したいだけです。
つまり、Google で検索すると、そのショートカット「python -cat」を使用できます。これは、「python」という単語を含み、「cat」という単語を含まないすべてのリンクを取得することを意味します。
SELECT webpage.title, word.title, word.id, webpage.title, webpage.id, webpage.link, wordpage.wordID, wordpage.id, wordpage.type, wordpage.pageID
FROM SE_word AS word
INNER JOIN se_wordpage AS wordpage ON wordpage.wordID = word.id
INNER JOIN se_webpage AS webpage ON wordpage.pageID = webpage.id
WHERE word.title = "python"
AND webpage.id NOT IN (
SELECT WP.id
FROM se_webpage AS WP
INNER JOIN se_wordpage AS WOP ON WP.id = WOP.pageID
INNER JOIN se_word AS W ON W.id = WOP.wordID
WHERE W.title = "cat"
)
GROUP BY webpage.id
ORDER BY webpage.title DESC
たとえば、単純な検索エンジンです
table se_Word is
**id | title**
1 | "game"
2 | "java"
3 | "python"
table se_WebPage is
**id | title**
1 | "www.ABCDEF.com"
2 | "www.ABCDR.net"
3 | "www.ABC.com"
table se_WordPage is
**id | pageID | wordID**
1 | 1 | 1
2 | 2 | 3
3 | 3 | 3
3 | 2 | 1
結果は webpage.id = 3 になるはずです
ここに作成スクリプトがあります。最適化はありますか?
前もって感謝します。