MySQL JOIN 多个表不起作用

标签 mysql

我不确定为什么这不起作用。如果我单独加入任一表,它会返回适当的结果,但当我尝试将它们都加入时,我会得到 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

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

最佳答案

您使用的 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));

关于MySQL JOIN 多个表不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515897/

相关文章:

php - 如何将搜索栏的结果发布到表格中? PHP代码

mysql - 无法连接到数据库 (10061)

php - 将 PHP DateTime 对象转换为 MYSQL 日期的字符串表示形式

MySQL Group By Year 结果正在改变

php - yii2:下拉选择字段

php - MySQL - 加法、减法和计算天数

mysql - MATCH AGAINST 不获取多列

mysql - 在mysql中创建关系表

mysql - 我应该如何索引这个 MySQL 数据库?

PHP MySql 用户推荐跟踪