Проблемы с соединением SQL - PullRequest
0 голосов
/ 08 ноября 2011

Интересно, может ли кто-нибудь помочь мне, пожалуйста.

У меня возникла проблема при попытке объединить информацию из двух таблиц базы данных mySQL.

Запрос, который я собрал так,ниже показано далеко.

<?php 
require("phpfile.php"); 

// Start XML file, create parent node 

$dom = new DOMDocument("1.0"); 
$node = $dom->createElement("markers"); 
$parnode = $dom->appendChild($node); 

// Opens a connection to a MySQL server 

$connection=mysql_connect ("hostname", $username, $password); 
if (!$connection) { die('Not connected : ' . mysql_error());} 

// Set the active MySQL database 

$db_selected = mysql_select_db($database, $connection); 
if (!$db_selected) { 
die ('Can\'t use db : ' . mysql_error()); 
} 

$query = "SELECT findid,
                 findosgb36lat,
                 findosgb36lon,
                 findcategory,
                 findname,
                 finddescription
          FROM   finds
          WHERE  makepublic = 'Yes'
            AND  sites.sitetype,
                 sites.sitedescription,
                 sites.siteosgb36lat,
                 sites.osgb36lon";  
$result = mysql_query($query); 
if (!$result) { 
die('Invalid query: ' . mysql_error()); 
} 

header("Content-type: text/xml"); 

// Iterate through the rows, adding XML nodes for each 

while ($row = @mysql_fetch_assoc($result)){ 
// ADD TO XML DOCUMENT NODE 
$node = $dom->createElement("marker"); 
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("findosgb36lat",$row['findosgb36lat']); 
$newnode->setAttribute("findosgb36lon",$row['findosgb36lon']); 
$newnode->setAttribute("findcategory",$row['findcategory']); 
$newnode->setAttribute("findname",$row['findname']);
$newnode->setAttribute("finddescription",$row['finddescription']);
} 

echo $dom->saveXML(); 

?>

Проблема, с которой я столкнулся, заключается в том, что я не уверен, как извлечь все записи из таблицы «sites», а только те записи из таблицы «find», гдеmakepublic 'значение равно' yes '.Я провел некоторое исследование, чтобы увидеть, будет ли работать конкретное соединение, то есть левое или правое, но поскольку нет общих полей между таблицами, я знаю, что они не будут работать.

Может кто-нибудь показать мне, какЯ могу обойти эту проблему, пожалуйста.

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

всем большое спасибо за вашу помощь в этом.Я работал над этим сегодня и решил все проблемы, которые у меня были, используя запрос UNION ALL.С уважением

0 голосов
/ 08 ноября 2011

Создание некоторых больших предположений о структурах таблиц:

      SELECT s.site_id,
             s.sitetype,
             s.sitedescription,
             s.siteosgb36lat,
             s.osgb36lon,
             f.findid,
             f.findosgb36lat,
             f.findosgb36lon,
             f.findcategory,
             f.findname,
             f.finddescription
      FROM   sites s
      LEFT OUTER JOIN finds f on s.site_id = f.site_id and f.makepublic = 'Yes'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...