簡単で中程度のはずのMySQLクエリで問題が発生するのは恥ずかしいです...だから、この溝から抜け出すために手を貸してくれることを願っています! ;)
単純化すると、3 つのテーブルがあります。
1) 各レコードが書誌参照である出版物 (列: idpub (プライマリ) など)
2) パブリケーションと index_entries 間のリンク テーブルである pubs_index (列: idpub、idindex)
3) index_entries (列: idindex, name) には、出版物の索引付けに使用できるキーワードのリストが含まれています。
各出版物は、0 から n 個の index_entries で索引付けできます。
私のクエリでは、すべてのキーワード「犬」、「猫」、および「マウス」で索引付けされた出版物を取得したいと考えています。
私はあらゆる種類の JOIN の組み合わせを試しましたが、これまでのところ成功していません。例として、私の最新の実行可能な試みを次に示します。
SELECT distinct publications.idpub)
FROM index_entries as index_entries2, index_entries as index_entries3, publications LEFT JOIN pubs_index ON publications.idpub = pubs_index.idpub
INNER JOIN index_entries ON bib_index.idindex=index_entries.idindex
WHERE AND bib_index.idindex=index_entries2.idindex
AND bib_index.idindex=index_entries3.idindex
AND index_entries.name like 'dog'
AND index_entries2.name like 'cat'
AND index_entries3.name like 'mouse';
よろしくお願いします。