Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL连接多个不工作的表_Mysql - Fatal编程技术网

MySQL连接多个不工作的表

MySQL连接多个不工作的表,mysql,Mysql,我不知道这为什么不起作用。如果我分别联接其中一个表,它会返回相应的结果,但当我尝试联接它们时,结果为0。(car_id和boat_id都是它们表上的主键。) 也许值得注意的是当我这么做的时候 LEFT JOIN posted_car e on c.car_id = e.car_id RIGHT JOIN posted_boat g on c.boat_id = g.boat_id 我得到的结果就好像我只加入了张贴的船表一样。如果有人能给我指出正确的方向,我将不胜感激 您正在使用JOIN,这可能

我不知道这为什么不起作用。如果我分别联接其中一个表,它会返回相应的结果,但当我尝试联接它们时,结果为0。(car_id和boat_id都是它们表上的主键。)

也许值得注意的是当我这么做的时候

LEFT JOIN posted_car e on c.car_id = e.car_id
RIGHT JOIN posted_boat g on c.boat_id = g.boat_id

我得到的结果就好像我只加入了张贴的船表一样。如果有人能给我指出正确的方向,我将不胜感激

您正在使用JOIN,这可能是个问题。您应该使用左外联接来获得正确的结果。检查以下语法:

$query = "SELECT *
    FROM            
        posted c
        left OUTER JOIN posted_car e on c.car_id = e.car_id
        left OUTER JOIN posted_boat g on c.boat_id = g.boat_id
    WHERE c.posted = 'posted'
        ORDER BY date DESC LIMIT 0, 30";
    $resultBoth = mysql_query($query, $db) or die(mysql_error($db));

@YotamOmer是在MySQL中创建别名的缩写@现在在家里,我猜
已发布。car\u id
已发布。boat\u id
不太可能同时为非
NULL
。这是真的吗?如果这个ans对您有帮助,请不要忘记选择它作为有效的ans。它可能会帮助其他人。
$query = "SELECT *
    FROM            
        posted c
        left OUTER JOIN posted_car e on c.car_id = e.car_id
        left OUTER JOIN posted_boat g on c.boat_id = g.boat_id
    WHERE c.posted = 'posted'
        ORDER BY date DESC LIMIT 0, 30";
    $resultBoth = mysql_query($query, $db) or die(mysql_error($db));