[英]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.