私のデータベースには次のテーブルがあります: courses
(スポーツ クラスの全データ)、coursedata
(とのコピーを含むcourses.title
--courses.description
インデックスFULLTEXT
/関連性検索に必要)、sports
(スポーツのリスト)、およびcourses_sports
(関連付けテーブル) -- 以下を参照してください。
ここで、スポーツに基づいてコースの関連性courses_sports
をマッピングし、このデータを自動的に入力したいと考えています。2 つのステップが必要です。
適切な方法でデータを収集します
SELECT
。関連テーブルにデータを書き込みます。
この投稿は最初のステップについてです。クエリの作成に問題があります。私が試したこと:
SELECT
courses.id,
sports.id
FROM
courses
JOIN
coursedata ON coursedata.id = courses.coursedata_id
JOIN
sports ON MATCH (coursedata.title) AGAINST (sports.title) > 0
-- The test with
-- sports ON MATCH (coursedata.title) AGAINST ('Basketball') > 0
-- works.
このクエリは機能していません:
エラーコード: 1210
AGAINST の引数が正しくありません
このマッピングを正しく実装するには?
追加情報: 関連表
courses
Field Type Key
------------------ --------------- ------
id int(11) PRI
title varchar(100)
description varchar(1000)
coursedata_id int(11) UNI
...
coursedata
Field Type Collation Null Key
----------- ------------- --------------- ------ ------
id int(11) (NULL) NO PRI
title varchar(100) utf8_general_ci YES MUL
description varchar(1000) utf8_general_ci YES MUL
CREATE TABLE `coursedata` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) DEFAULT NULL,
`description` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `searchcoursetitle` (`title`),
FULLTEXT KEY `searchcoursedescription` (`description`)
) ENGINE=MyISAM AUTO_INCREMENT=5208 DEFAULT CHARSET=utf8
sports
Field Type Collation Null Key
-------- --------------------- --------------- ------ ------
id int(11) (NULL) NO PRI
title varchar(50) utf8_general_ci NO
category varchar(50) utf8_general_ci YES
type enum('sport','dance') utf8_general_ci YES
courses_sports
Field Type Collation Null Key
--------- ------- --------- ------ ------
course_id int(11) (NULL) NO PRI
sport_id int(11) (NULL) NO PRI