私は2つのテーブルを持っています。メンバーとチームこの複雑なMySQLクエリはなぜ機能しないのですか?
メンバー表 MEMBERID、firstNameの、lastNameの
(姓と名のは、フルテキストインデックスされている)
チームはテーブル TEAM_ID、member1ID、member2ID
は、ここに私のクエリの
$sql = "SELECT a.* ";
$sql .= "FROM teams a WHERE ";
$sql .= "a.member1ID IN (SELECT b.memberID FROM members b ";
$sql .= "WHERE MATCH(b.firstName, b.lastName) AGAINST('$q' IN BOOLEAN MODE)) ";
$sql .= "OR a.member2ID IN (SELECT b.memberID FROM members b ";
$sql .= "WHERE MATCH(b.firstName, b.lastName) AGAINST('$q' IN BOOLEAN MODE)) ";
if($year)
$sql .= "AND a.team_y = $year ";
$sql .= "ORDER BY a.team_num ASC ";
if($limit)
$sql .= "$limit";
このクエリは閉じる必要がありますが、まだ動作していません。
私がすべてのチームを表示させるクエリを作成しようとすると、「$ q」がオンになっています。
Ex。 $ q = doe、doeがオンになっているすべてのチームを表示してください。
このクエリはチームを出力する必要があります。
"私は助けが必要です"は質問ではないので、質問のタイトルを改めてください。 –
クエリを把握するのは難しいです。完全なクエリを表示する - echo $ sql; –
通常、チーム、メンバー、チームメンバーの3つのテーブルが存在します。 2つのテーブルを使用しているので、クエリの方法を変更することをお勧めします。ところで、あなたは$ limitの前にLIMITの単語を忘れました – frail