簡體   English   中英

MySQL Join使用WHERE子句返回太多行

[英]MySQL Join returns too many rows with WHERE clause

我遇到SQL查詢問題。 所以在我的項目中,用戶可以預訂車程。 我希望按用戶ID( passenger_id )顯示保留的游樂設施,但是當用戶僅為其中一個駕駛員廣告預訂時,查詢會返回所有用戶( driver_id )廣告。

    SELECT advertisement.id
         , COUNT(review.driver_id) AS 'review_count'
         , ROUND(AVG(review.mark) ,1) AS 'rating'
         , users.unique_id
         , users.name
         , users.surname
         , users.phone
         , YEAR(CURDATE()) - YEAR(users.birthdate) AS age
         , users.image
         , advertisement.from_city
         , advertisement.to_city
         , users.car_name
         , users.car_model
         , users.car_make_year
         , advertisement.number_of_places
         , advertisement.price
         , advertisement.datetime
         , advertisement.info
      FROM reserved_rides
      JOIN advertisement  
        ON reserved_rides.driver_id = advertisement.user_id
      LEFT 
      JOIN review 
        ON reserved_rides.driver_id = review.driver_id
      JOIN users 
        ON reserved_rides.driver_id = users.unique_id
     WHERE reserved_rides.passenger_id = ?
     GROUP 
        BY advertisement.id
     ORDER 
        BY advertisement.datetime ASC

這里出了什么問題?

我希望用GROUP BY advertisement.id GROUP BY reserved_rides.driver_id替換GROUP BY advertisement.id解決你的問題。 干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM