左結合があります。以下に示すコードは、
- ID
- リファラー
- 検索語
- クライアントID
テーブル 1 から、下の左結合クエリを使用して、テーブル 2 から次の列を取得します。
- クライアントID
- visit_id
- 日時
url1
$query = "SELECT table1.id, table1.search_term, table1.referrer, table1.client_id, table2.client_id, table2.url1, table2.visit_id, table2.timedate ". "FROM table1 LEFT JOIN table2 " "ON table1.id = table2.visit_id WHERE table1.ip_address = '$ip_address' AND table1.client_id='$client_id' Group BY visit_id, timedate"; $result = mysql_query($query) or die(mysql_error()); while($row = mysql_fetch_array($result)){ ?> <div id=''> <?php "<br />"; echo $row['referrer']. " - ". $row['search_term']; echo $row['timedate']. " - ". $row['url1']. " - ". $row['visit_id']; echo "<br />"; ?> </div> <?php }
私がやろうとしているのは、リファラーと検索語がすべての行ではなく一度だけ表示されるように行をフォーマットして、結果がこのようになるようにすることです。
リファラー検索用語
日時 URL1 1 日時 URL1 1 日時 URL1 1
リファラー検索用語
日時 URL1 2 日時 URL1 2 日時 URL1 2
数字の 1 と 2 は、結果がグループ化される異なる訪問 ID を表します。現時点では、ループ内にあるため、すべての行の後にリファラーと検索語を取得し、それを理解しています。リファラーと検索用語を結果のグループごとに 1 回だけ表示できるかどうかわかりません。