MySQL 外部結合後にWHERE検索できない
■質問内容:
超初心者です。質問が的外れかもしれませんが自己解決できずにいます。何卒ご教授ください。(完全)外部結合して、WHEREを使って検索(未解決)したい何が原因で検索できないのかわかりません。
■環境:
MySQL:5.0.45(win32)
php:5.2.5(win32)
■状況と経緯:
ブログのような形式で、
記事(親)にコメント(子)を追加できるように、
TABLEを親、子と2つ作成しています。
この2つのテーブルを、外部結合しました。
完全外部結合を達成するために、LEFT OUTER JOIN,UNION,RIGHT OUTERJOIN を使用してテーブルを結合しています。
この結合後に、WHEREでLIKE検索をしてみると、結合した全てのデータが表示されてしまい検索条件がHITしなくなってしまいました。
左外部結合(LEFT OUTER JOIN)の場合はWHEREでLIKE検索が実行できていました。出来ないことを試みようとしているのか、それとも構文間違いないのか、書籍やネットでの情報を試行錯誤してみましたが解決に至りません。書籍片手に試行している超初心者です。この事案に困り果てています。ご教授いただければ助かります。宜しくお願い致します。
■検索結果の表示を行うPHP抜粋(search.php)
/* 検索画面からの入力条件を変数で受け取り */
$kanriban_Reco_fp = "-1";
if (isset($_GET['kanriban'])) {
$kanriban_Reco_fp = $_GET['kanriban'];
}
$hakken_Reco_fp = "-1";
if (isset($_GET['hakken'])) {
$hakken_Reco_fp = $_GET['hakken'];
}
$hiniti_Reco_fp = "-1";
if (isset($_GET['hiniti'])) {
$hiniti_Reco_fp = $_GET['hiniti'];
}
$gen_Reco_fp = "-1";
if (isset($_GET['gen'])) {
$gen_Reco_fp = $_GET['gen'];
}
$dare_Reco_fp = "-1";
if (isset($_GET['dare'])) {
$dare_Reco_fp = $_GET['dare'];
}
$pgba_Reco_fp = "-1";
if (isset($_GET['pgba'])) {
$pgba_Reco_fp = $_GET['pgba'];
}
$kiiwa_Reco_fp = "-1";
if (isset($_GET['kiiwa'])) {
$kiiwa_Reco_fp = $_GET['kiiwa'];
}
/* データベース"work"のテーブルFとテーブルPを(完全)外部結合し、WHERE後にLIKE検索でHITした結果を一覧化するための処理*/
/* テーブルFOは、f. テーブルPOは、p. で表現しています。 . に続く内容は、フィールド名です。(レコードセット名をfpと任意に付けています)*/
mysql_select_db($database_work, $work);
$query_Reco_fp = sprintf("SELECT f.id, f.hakkensya, f.bajyon, f.naiyou, f.houkokusaki, f.kigen, f.jyoukyou, f.tourokubi, f.tantou, f.nin, f.syurui FROM fo f LEFT OUTER JOIN po p on f.id = p.id union SELECT f.id, f.hakkensya, f.bajyon, f.naiyou, f.houkokusaki, f.kigen, f.jyoukyou, f.tourokubi, f.tantou, f.nin, f.syurui FROM fo f RIGHT OUTER JOIN po p on f.id = p.id WHERE f.id LIKE %s AND f.hakkensya LIKE %s AND f.kigen LIKE %s AND f.houkokusaki LIKE %s AND f.jyoukyou LIKE %s AND f.bajyon LIKE %s AND f.naiyou LIKE %s AND p.id LIKE %s AND p.topinamae LIKE %s AND p.topikigen LIKE %s AND p.topihoukokusaki LIKE %s AND p.topinaiyou LIKE %s AND p.id LIKE %s ORDER BY id ASC",
--以上--
一覧表示のHTMLには、結合した全ての内容が、一覧表示されてしまいます。検索条件を無視している??
何卒、宜しくお願いいたします。
お礼
ありがとう御座います。