私がやりたいことは、データベース「sc2」にクエリを実行し、3 つのテーブルで特定の情報を検索することです。
私は3つのテーブルを持っています
===
Matches
====
matchid
matchname
casterid
eventid
===
Casters
===
casterid
casteralias
casterurl
===
Events
===
eventid
eventname
私が使用している現在の SQL ステートメントは、ある程度機能します。
$sql = "
SELECT m.title AS matchTitle, c.casteralias matchCaster, m.dateadded matchDate,
comp.eventname FROM matches m
LEFT JOIN
casters AS c
ON
c.casterid = m.casterid
LEFT OUTER JOIN
competitions AS comp
ON m.eventid = comp.id
WHERE m.title LIKE '%".$search."%'
OR
c.casteralias LIKE '%".$search."%'
OR
comp.eventname LIKE '%".$search."%'
ORDER BY
m.dateadded
DESC";
必要な情報を引き出しますが、結果セット内で元のテーブルを区別したいので、見つかった結果の元のテーブルに基づいて結果を操作できます。
matchTitle matchCaster matchDate eventname
Hero vs Revival HuskyStarcraft 2013-06-05 15:54:05 \N
Idra vs Stephano HuskyStarcraft 2013-05-30 13:28:05 \N
Stephano vs BabyKnight HuskyStarcraft 2013-05-29 14:31:46 WCS Europe
Trimaster vs Destiny HuskyStarcraft 2013-05-28 18:26:45 \N
RorO vs Innovation HuskyStarcraft 2013-05-27 22:04:28 \N
Psy vs Camara HuskyStarcraft 2013-05-26 02:13:10 \N
Minigun vs Maker HuskyStarcraft 2013-05-23 20:05:00 \N
結果は問題ないようです。最初に検索されたものに基づいて、検索結果の実際の表示を区別する方法を決定する必要があります。そのため、ユーザーがキャスターを検索すると、最近の試合情報を取得する代わりに、特定のキャスターからの最近のキャストと共にキャスターのサムネイルが取得されます。
私は自分自身を明確にすることを願っています。あなたが与える必要があるかもしれないアドバイスを事前に感謝します. :)