sql >> データベース >  >> RDS >> Mysql

MySQL-JOINを使用してデータを選択しますが、WHERE句を複雑で個別の境界に適用します

    recipient NOT IN (SELECT ...)を使用します およびauthor NOT IN (SELECT ...) 条件1と2に一致する参加者を除外します。

    SELECT             
              hia.query_result_id,
              hia.url,
              hia.title,
              hia.article_publication_day,
              hia.media_name,
              hia.author_full_name,
              hia.author_first_name,
              hia.author_last_name,
              hia.author_email,
              ces.sent_at
    FROM
              Hobby_ideas_articles hia
    LEFT JOIN
              Past_Customer_sent_messages ces
    ON
              hia.author = ces.recipient 
                AND ces.recipient NOT IN (
                    SELECT recipient
                    FROM Past_Customer_sent_messages
                    WHERE sent_at > DATE_SUB(NOW(), INTERVAL 3 HOUR)
                )
    WHERE
              hia.hobby_id = HOBBY_ID_INPUT_I_HAVE AND         
              hia.author IS NOT NULL
              AND hia.author NOT IN (
                SELECT recipient
                FROM Past_Customer_sent_messages
                WHERE customer_id = CUSTOMER_ID_INPUT_I_HAVE
                AND sent_at > DATE_SUB(NOW(), INTERVAL 30 DAY)
              )
    

    cesの条件 ONにある必要があります sent_at = NULLを取得するための句 一致する行がない記事の場合。




    1. h2データベースに特定のUUIDを挿入する方法は?

    2. PostgresDBでIDの大きな配列を使用するDjangoクエリフィルター

    3. AWSRDSとは何ですか

    4. Oracle Cloudの内訳–OCIでのデータベースホスティングコスト