0

我不确定为什么这不起作用。如果我分别加入任一表,它会返回适当的结果,但是当我尝试同时加入它们时,我得到 0 个结果。(car_id 和boat_id 都是它们表上的主键。)

$query = "SELECT
             *
        FROM            
            posted c
            JOIN posted_car e on c.car_id = e.car_id
            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));

可能值得注意的是,当我这样做时

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

我得到的结果好像我只加入了posted_boat 表。如果有人能指出我正确的方向......将不胜感激。

4

1 回答 1

2

您正在使用可能有问题的 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));
于 2013-07-07T20:14:13.733 回答