【问题标题】:How to display with MySQL INNER JOIN with possible empty fields如何使用 MySQL INNER JOIN 显示可能的空字段
【发布时间】:2021-03-06 09:09:34
【问题描述】:

我正在尝试使用 MySQL SELECT 和 INNER JOIN 显示空字段

以下是表 1 (tbl_request) 的属性

requestID, requestTitle, requestRemarks

以下是表 2 (tbl_event) 的属性

eventID, status, image, requestID

状态为 1(已批准)或 2(已拒绝)

如果我想显示它是否被批准,查询将是

SELECT * from (tbl_event INNER JOIN tbl_request on tbl_event.requestID = tbl_request.requestID) where tbl_event.status = 1;

如果我想显示尚未批准/拒绝的事件列表(意味着不存在),查询会是什么?

我想要得到的结果是:

requestID      requestTitle      requestRemarks      eventID      status      image      
    5           Volleyball          sport1
    9           Swimming            sport2         
    11          Hiking              sport3

【问题讨论】:

    标签: mysql join select


    【解决方案1】:

    您可以将其设为外连接,然后检查外连接表是否没有记录

    SELECT * 
    FROM      tbl_request
    LEFT JOIN tbl_event 
           ON tbl_event.requestID = tbl_request.requestID
    WHERE     tbl_event.requestID IS NULL;
    

    【讨论】:

    • 这正是我要找的。谢谢!
    • 我正在尝试将数据传递到下一页我使用“SELECT * FROM tbl_request LEFT JOIN tbl_event ON tbl_event.requestID = tbl_request.requestID WHERE tbl_event.requestID = $requestID”,但出现错误。你能指出我错过了什么吗?
    • 错误是什么?此外,您应该保留我在此处放置的WHERE 条件。你可以添加到它AND tbl_request.requestID = $requestID。注意一定要和tbl_request表比较,因为其他表中没有匹配的记录。
    • 错误是“mysqli_fetch_array() 期望参数 1 是 mysqli_result, bool given”
    • 这意味着您的 sql 中有语法错误。仔细检查。
    猜你喜欢
    • 2013-07-30
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 2015-07-18
    • 2015-01-28
    相关资源
    最近更新 更多