日期标准不起作用

时间:2013-05-16 09:39:14

标签: mysql

我正在为PHP / MySql中的sportsclub制作一个web应用程序。其中一个功能是有一个支付清单,以检查其成员是否已付款。

在de paylist中选择成员的2个标准是:

  • 一定不能取消禁止
  • 成员的加入日期大多等于或低于创建的日期 paylist

此问题的相关表格和列是:

Members:
id_member (int) (PK)
join_date (date)
disbarred (enum: “true,false”)

Paylists:
id_paylist (int) (PK)
date_created (date)

Payments:
id_payment (int) (pk)
id_paylist (int) (fk)
id_member (int) (fk)
paid (enum: “true,false”)

我试过这样接近它:

首先,我使用简单的选择查询来获取薪资清单的日期并将其存储在变量中:

  

选择日期FROM paylist WHERE id_paylist = $ _GET ['id_paylist'];

然后我使用此查询从特定的工资单(id_paylist)制作列表。尚未付款的会员不在薪资表中,并显示为空:

SELECT
DISTINCT
m.*,
p.*,
pl.*
FROM
payments AS p
RIGHT JOIN members AS m ON m.id_member = p.id_member
LEFT JOIN paylists AS pl ON pl.id_paylists = p.id_paylist
WHERE
m.disbarred != true
AND
m.join_date <= " . $paylistdate  . "
AND
pl.id_paylist = " . $_GET['id_paylist'] . " OR pl.id_paylist IS NULL

现在这种方式有效,除了日期标准。我已经尝试了很多东西,但我似乎无法做到这一点。

回应我的查询结果:

SELECT DISTINCT m.*, m.name AS name_member, b.*, bl.* FROM payments AS p RIGHT JOIN member AS m ON m.id_member = p.id_member LEFT JOIN paylists AS pl ON pl.id_paylist = p.id_paylist WHERE m.disbarred != true AND m.join_date <= 2013-05-13 AND pl.id_paylist = 3 OR pl.id_paylist IS NULL

如果有人可以帮助我,那会很棒。

编辑:此问题的解决方案是:

SELECT DISTINCT m.*, m.name AS name_member, p.*, pl.*
FROM
payments AS p
RIGHT JOIN members AS m ON m.id_member = p.id_member
LEFT JOIN paylists AS pl ON pl.id_paylist = p.id_paylist
WHERE
m.disbarred = 'false' AND
m.join_date <= '2013-05-13' AND
(pl.id_paylist = 3 OR pl.paylist IS NULL)

感谢帮助人员。

0 个答案:

没有答案