mysql - 查询未从数据库输出所有相关结果

标签 mysql sql database

我正在尝试使用下面的代码从数据库中输出所有相关值。由于某种原因,一些应该输出的信息没有输出,我不知道为什么。

我猜我的查询有问题?

$result = mysql_query(
        "SELECT 

        tbl_status.id as statID, 
        tbl_status.from_user as statFROM, 
        tbl_status.status as statSTATUS, 
        tbl_status.deleted as statDEL, 
        tbl_status.date as statDATE,

        tbl_users.id as usrID, 
        tbl_users.name as usrNAME,

        tbl_photos.profile as photosPROFILE,
        tbl_photos.photo_link as photoLINK,
        tbl_photos.default_photo as photoDEFAULT 

        FROM tbl_status 
        INNER JOIN tbl_users ON tbl_status.from_user = tbl_users.id

        INNER JOIN tbl_photos ON tbl_photos.profile = tbl_users.id 
        WHERE tbl_status.deleted = '0' AND tbl_photos.default_photo = '1'
        ORDER BY tbl_status.date desc;

        ");

最佳答案

根据您的查询,您看不到所有状态的可能有以下四种原因:

  1. 您正在使用内部联接 tbl_photos ,因此任何没有照片的用户都将被排除在外。
  2. 您正在使用内部联接 tbl_users ,因此任何与至少一个用户无关的状态(并且该用户必须拥有照片 - 请参阅#1)都将被排除。
  3. 您正在过滤tbl_photos.default_photo = '1' ,所以任何带有 tbl_photos.default_photo <> '1' 的照片将被排除在外。由于内部联接,这还将排除关联的用户,并可能排除关联的状态。
  4. 您正在过滤tbl_status.deleted = '0' ,因此任何带有 delete <> '0' 的状态将被排除在外。显而易见,但值得一提。

试试这个:更改 INNER JOIN tbl_usersLEFT JOIN tbl_users ,并更改 INNER JOIN tbl_photosLEFT JOIN tbl_photos 。如果这没有给您带来预期的结果,请发布示例数据和预期结果。

关于mysql - 查询未从数据库输出所有相关结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18218283/

相关文章:

SQL:将另一个表中的数据插入到包含外键的表中

MySQL 日期范围 : ocurrences among same dates

MySQL - 选择最近 10 位作者的最新帖子

php - 如何相邻显示数据库中的列表项?

php - 从 db 中获取单选按钮值并且还希望检查单选按钮

mysql - SQL 搜索未运行

基于更改存储过程的 SQL Server 2008 作业

c# - 编译器错误消息 : CS1519: Invalid token '=' in class, 结构或接口(interface)成员声明

php - 我应该使用哪种数据库用户架构来为高频网站提供服务?

java - 如何使用 JDBC 将 Java 应用程序连接到 db4free.net?