Mysql表单新的优化查询

时间:2013-03-01 10:08:18

标签: mysql

我在数据库中有四个表,

用户,计数,优惠券,帐户

需要以下条件的用户数量:

  1. 从用户表中选择所有用户,然后
  2. 从用户不在最近14天列表中的计数中选择
  3. 选择不在列表中的用户,以检查优惠券表中是否存在。如果他们不在优惠券表中,那么请使用那些用户ID
  4. 选择帐户表并检查这些用户是否在帐户表中有任何计数或插入。如果是,则将所有这些用户设置为阵列或将其打印出来。
  5. 请有人帮我形成好的查询吗?

    谢谢!

1 个答案:

答案 0 :(得分:1)

如果我对用户

  • 过去14天内 在计数表中 和
  • 优惠券表中的人 和
  • 帐户表中 的人

看起来像一个奇怪的SQL,但这是一个例子:

SELECT  
    * 
FROM 
    user
WHERE user_id NOT IN
    ( 
        SELECT 
            user_id 
        FROM 
            `count` 
        WHERE
            DATE_SUB(CURDATE(),INTERVAL 14 DAY) <= date_column
    )
AND user_id NOT IN
    (
        SELECT
            user_id
        FROM
            coupon
    )
AND user_id IN
    (
        SELECT
            user_id
        FROM
            account
    )

如果这不对,你对你想要的解释是错误的,应该澄清。 这个sql的一切都可能出错,因为我不知道你的列(用户id?date?)。但我认为你可以根据自己的喜好更改sql。