0

SELECT COUNT(*) AS cnt FROM ( (SELECT 'used' FROM b_names_1) UNION ALL (SELECT 'used' FROM b_names_2)) AS t WHERE 'used' = 1

この暗号は非常によく..

しかし、結果を時間間隔で並べ替えたいので、この行を一番下に追加しようとするとうまくいきません:

AND registration_date_time >= STR_TO_DATE( '2013-01-28 00:00:00', '%Y-%m-%d %H:%i:%s' ) AND registration_date_time < STR_TO_DATE( '2013-02-02 00:00:00', '%Y-%m-%d %H:%i:%s' )

コードは次のようになります。

SELECT COUNT(*) AS cnt FROM ( (SELECT 'used' FROM b_names_1) UNION ALL
(SELECT 'used' FROM b_names_2)) AS t
WHERE 'used' = 1 AND registration_date_time >= STR_TO_DATE( '2013-01-28 00:00:00', '%Y-%m-%d %H:%i:%s' ) AND registration_date_time < STR_TO_DATE( '2013-02-02 00:00:00', '%Y-%m-%d %H:%i:%s' )

次のエラーが表示されます: #1054 - 'where 句' の列 'registration_date_time' が不明です

その日付コードをSQLに正しく実装する方法はありますか?

4

1 に答える 1

1

これらの列はどこかから来る必要があり、それらを内部クエリに追加します。

SELECT COUNT(*) AS cnt 
FROM ( 
    (SELECT 'used', registration_date_time FROM b_names_1) 
    UNION ALL
    (SELECT 'used', registration_date_time FROM b_names_2)
) AS t
WHERE 'used' = 1 
AND registration_date_time >= STR_TO_DATE( '2013-01-28 00:00:00', '%Y-%m-%d %H:%i:%s' ) 
AND registration_date_time < STR_TO_DATE( '2013-02-02 00:00:00', '%Y-%m-%d %H:%i:%s' )
于 2013-02-02T16:06:58.887 に答える