【问题标题】:Display all clients who have booked a room显示所有预订房间的客户
【发布时间】:2018-08-06 03:00:25
【问题描述】:

子查询返回超过 1 行,这是错误。我想打印所有显示client idowner idbooked room 详细信息。

$query = "SELECT r.room_id, r.roomsize, r.numberroom, r.price, u.username,
(SELECT u.username FROM room_register r 
INNER JOIN user_info u on r.owner_id = u.user_id  
INNER JOIN booked b on b.room_id = r.room_id)as owner_name 
FROM room_register r INNER JOIN booked b on b.room_id = r.room_id 
INNER JOIN user_info u on u.user_id = b.booked_by";

【问题讨论】:

  • 请编辑您的问题并在此处添加您的表格

标签: php sql subquery


【解决方案1】:

子查询中有太多的连接:

SELECT r.room_id, r.roomsize, r.numberroom, r.price, u.username,
       (SELECT u.username
        FROM user_info u 
        WHERE r.owner_id = u.user_id  
       ) as owner_name 
FROM room_register r INNER JOIN
     booked b 
     ON b.room_id = r.room_id INNER JOIN
     user_info u 
     ON u.user_id = b.booked_by;

或者只使用两个单独的JOINs:

SELECT r.room_id, r.roomsize, r.numberroom, r.price, u.username,
       uo.username as owner_name 
FROM room_register r INNER JOIN
     booked b 
     ON b.room_id = r.room_id INNER JOIN
     user_info u 
     ON u.user_id = b.booked_by LEFT JOIN
     user_info uo
     ON uo.user_id = r.owner_id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 2018-10-19
    • 2020-06-29
    相关资源
    最近更新 更多