複数テーブルの件数を一緒に出力する
select 'Table501',count(*) from Table501 union
select 'Table502',count(*) from Table502 union
select 'Table512',count(*) from Table512 union
select 'Table522',count(*) from Table522 union
select 'Table530',count(*) from Table530;
Cross join(交差結合:全部の組み合わせが返ってきます)※直積※
-- 新規カレンダ追加
-- workcalテーブルに日付と稼働日フラグを入れてから実行
INSERT INTO t_workcal
SELECT
b.BushoCd
, a.CalDt
, a.WorkFlg
, '0' WorkDtSq
, "admin"
, CURRENT_DATE + 0
, CURRENT_TIME + 0
, "admin"
, CURRENT_DATE + 0
, CURRENT_TIME + 0
FROM
workcal a
CROSS JOIN busho b
WHERE
a.CalDt >= '20220401'
ORDER BY
b.BushoCd
, a.CalDt
leftjoin:左表の件数を基準にして、減らない方法
SELECT
DATE_FORMAT(a.CalDt, '%Y/%m/%d') CalDt
, dayname(DATE_FORMAT(a.CalDt, '%Y/%m/%d')) dayname
, WEEK(DATE_FORMAT(a.CalDt, '%Y/%m/%d'),3) WEEK
, b.ShainNo
FROM
t_workcal a
LEFT JOIN t_sagyoushashift b
ON a.BushoCd = b.BushoCd
AND a.CalDt = b.CalDt
and b.ShainNo='test'
WHERE
a.BushoCd = '11'
and left(a.CalDt,6) = '202209'
条件はWhereに置かないで、「ON」のところに置くと、件数が減らない。
https://blog.csdn.net/qq_34224565/article/details/125760805
当where 条件在外,会先聚合后过滤,所以结果会变少