douyanning3724 2012-08-22 06:23
浏览 26
已采纳

在php中以不同的方式加入两个mysql表

I have following mysql tables.

1. members
----------
|id |name|
----------
|001|aaa |
|002|bbb |
|003|ccc |
|004|ddd |
----------

2. membershipfees
----------------
|id |date      |
----------------
|001|2012-01-01|
|002|2012-01-01|
----------------

I want to show list of the members who not paid the fees for the current month. My php code is,

SELECT Members.id, Members.Name FROM Members
    LEFT JOIN MembershipFees
    ON Members.id = MembersipFees.id
    WHERE DATE_FORMAT(MembershipFees.Date, '%Y%m') <> DATE_FORMAT(NOW(), '%Y%m')
    ORDER BY Members.id ASC

But it shows 0 rows. Any suggestions please.

  • 写回答

4条回答 默认 最新

  • doufu7835 2012-08-22 06:29
    关注

    You need to put MembersipFees.id IS NULL condition is where clause. Also if date field is varchar column then you should be using STR_TO_DATE function.

    SELECT Members.id, Members.Name
    FROM Members
         LEFT JOIN membershipfees
            ON Members.id = membershipfees.id
               AND DATE_FORMAT(STR_TO_DATE(membershipfees.`Date`, '%d-%m-%Y'), '%Y%m') = 
                               DATE_FORMAT(NOW(), '%Y%m')
    WHERE membershipfees.id IS NULL
    ORDER BY Members.id ASC;
    

    SEE SQLFIDDLE DEMO HERE

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 个人网站被恶意大量访问,怎么办
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制