簡體   English   中英

MYSQL - 在匹配時從兩個表中獲取值

[英]MYSQL - Getting Values From Two Tables on Match

我想從匹配中的兩個表中獲取一個值。

預訂表:

 id, member_id, salon_id, service_id, appointment_date, booking_date
  1,         5,        2,          1,       2015-08-29,   2015-08-29
  2,         5,        2,          2,       2015-08-29,   2015-08-29
  3,         5,        3,          3,       2015-08-29,   2015-08-29
  4,         5,        3,          4,       2015-08-29,   2015-08-29

服務表:

 service_id, salon_id, service_name, price
          1,        2, Make-Up     , 25
          2,        2, Hair Styling, 10
          3,        3, Waxing      , 15
          4,        3, Threading   , 20

當前查詢:

SELECT b.salon_id 
     , s.service_id
     , s.price
     , b.booking_date 
  FROM bookings b
  JOIN services s
    ON b.salon_id = s.salon_id 
   AND b.salon_id = 2 
   AND b.booking_date = '2015-08-29';

目前的結果:

  salon_id, service_id, price, booking_date
         2,          1,    25,   2015-08-29
         2,          1,    25,   2015-08-29
         2,          2,    10,   2015-08-29
         2,          2,    10,   2015-08-29

預期結果:

 salon_id, service_id, price, booking_date
        2,          1,    25, 2015-08-29
        2,          2,    10, 2015-08-29

我想做的是。 我想要具體日期的所有特定沙龍預訂。 之后我將總結價格以獲得特定日期沙龍的總銷售額。

有什么幫助嗎?

提前致謝。

嘗試DISTINCT

SELECT DISTINCT bookings.salon_id, services.service_id, services.price,
bookings.booking_date FROM bookings INNER JOIN services ON
bookings.salon_id=services.salon_id AND bookings.salon_id = 2 AND
bookings.booking_date = '2015-08-29';

我認為你還需要加入服務id的條件:

SELECT b.salon_id, s.service_id, s.price, b.booking_date
FROM bookings b INNER JOIN
     services s
     ON b.salon_id = s.salon_id AND
        b.service_id = s.service_id
WHERE b.salon_id = 2 AND
      b.booking_date = '2015-08-29';

還要注意表別名如何使查詢更容易編寫和讀取。

試試這個查詢:

SELECT bookings.salon_id, services.service_id, services.price,bookings.booking_date 
FROM bookings 
LEFT JOIN services ON bookings.salon_id=services.salon_id AND bookings.service_id = services.service_id;

此查詢將顯示服務中存在的預訂數據。

bookings.salon_id = services.salon_id AND bookings.salon_id = 2 AND bookings.booking_date ='2015-08-29' ;

使您的查詢不動態。 如果你想獲得salon_id 1或2或3或全部?

暫無
暫無

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

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