0

私がやりたいことは、データベース「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

結果は問題ないようです。最初に検索されたものに基づいて、検索結果の実際の表示を区別する方法を決定する必要があります。そのため、ユーザーがキャスターを検索すると、最近の試合情報を取得する代わりに、特定のキャスターからの最近のキャストと共にキャスターのサムネイルが取得されます。

私は自分自身を明確にすることを願っています。あなたが与える必要があるかもしれないアドバイスを事前に感謝します. :)

4

1 に答える 1