我有一个简单的查询,但现在正在寻找错误一段时间。
我能想到的唯一一件事是连接数据库会出现问题,但这是不对的,因为它正在网站的其他部分上工作。

这是数据库连接:

$dbwebwinkel = mysql_connect("localhost", "abcdef", "123456") or die(mysql_error());
$db1 =mysql_select_db('abcdef', $dbwebwinkel) or die(mysql_error());


这是错误消息:


  搜索查询中出了点问题(SELECT prod_omschrijving.producttitel,prod_omschrijving.idproduct AS'idproductom',producten.idproduct AS'idproductprod',producten.productlink来自prod_omschrijving完全外部联接producten on producten.idproduct = prod_omschrijvingid。 .idproduct IS NULL或producten.idproduct IS NULL)
  
  您的SQL语法有误。在第8行的“ OUTER JOIN producten ON producten.idproduct = prod_omschrijving.idproduct W”附近,检查与您的MySQL服务器版本相对应的手册以使用正确的语法。
  
  警告:mysql_fetch_array()期望参数1为资源,在第61行的/home/s010485/domains/jcsl.nl/public_html/medewerkers/paginas/boekingen/producten.php中给出布尔值


这是脚本。

$qry = "
SELECT
    prod_omschrijving.producttitel,
    prod_omschrijving.idproduct AS 'idproductom',
    producten.idproduct AS 'idproductprod',
    producten.productlink
 FROM
    prod_omschrijving
 FULL OUTER JOIN
    producten
 ON
    producten.idproduct=prod_omschrijving.idproduct
 WHERE
    prod_omschrijving.idproduct IS NULL
 OR
    producten.idproduct IS NULL";

$sql = mysql_query($qry, $dbwebwinkel);
$sql = mysql_query($qry, $dbwebwinkel);
if($sql === false)
{
    echo (" Er gaat iets mis in de zoekquery (".$qry .")".mysql_error($dbwebwinkel));
}
else
{
    WHILE ($lijstje = mysql_fetch_array($sql))
    {
        echo $lijstje['idproductom'];
    }
}

最佳答案

您可以使用union all和两个外部联接来执行所需的操作:

SELECT o.producttitel, o.idproduct AS idproductom,
       p.idproduct AS idproductprod, p.productlink
FROM prod_omschrijving o LEFT OUTER JOIN
     producten p
     ON p.idproduct = o.idproduct
WHERE p.idproduct IS NULL
UNION ALL
SELECT o.producttitel, o.idproduct AS idproductom,
       p.idproduct AS idproductprod, p.productlink
FROM prod_omschrijving o RIGHT OUTER JOIN
     producten p
     ON p.idproduct = o.idproduct
WHERE o.idproduct IS NULL;


我添加了表别名以使查询更具可读性。

10-01 00:43