我正在根据子查询查询表 1 中的日期列。where 子句中的子查询 1 从外键引用的表中获取描述,子查询 2 通过其他条件提取数据。
所以我的问题是,我有什么替代方法可以使这个查询更好?
SELECT count(*) AS non_saturday
FROM t_booking
WHERE p_id IN (
SELECT p_id
FROM p_detail
WHERE p_name IN ('A','B')
)
AND date_format(p_date, '%Y%m%d') IN (
SELECT DISTINCT CONCAT (
gregorian_ccyy
,gregorian_month
,gregorian_day
)
FROM m_gregorian_calendar1 c
WHERE c.day_of_the_week = (
SELECT day_id
FROM m_gregorian_day
WHERE day_name = 'SATURDAY'
)
AND c.gregorian_ccyy = '2012'
AND c.gregorian_month = '10'
)