mysql查询没有结束

时间:2013-12-19 20:16:27

标签: php sql mysqli

我有4张桌子。

person ... PersonID, LASTNAME, FIRSTNAME 

users ...  PersonID, IsApproved

membership ... MembershipID,  LastActiveYear

最后一张桌子将它们捆绑在一起

mempershipperson ... MembershipID,   PersonID

我需要生成列表,显示;

SELECT 'LASTNAME','FIRSTNAME','PersonID','MembershipID'
WHERE 'LastActiveYear' <= 2013 AND 'IsApproved" = 1

当我在下面运行此查询时,接缝会继续下去。我应该有大约100行。

SELECT LastActiveyear, M.MembershipID, P.FIRSTNAME, P.LASTNAME, U.IsApproved FROM {成员{1}} {用户{1}} {人{1}} {membershipperson {1}} {LastActiveYear {1}} {IsApproved {1}}

我对这一切都很陌生,所以我可能会非常清楚我对你做错了什么。 几个星期以来,我一直在努力解决这个问题。因此,我的尝试已经返回了超过700,000行无用数据。

在某些时候,我需要创建一个php页面,将所有这些错误的IsActive位重置为'0'。

请注意,这些表包含更多列,我只是展示了此应用程序的相关内容。

谢谢

2 个答案:

答案 0 :(得分:1)

SELECT LastActiveyear, M.MembershipID, P.FIRSTNAME, P.LASTNAME, U.IsApproved
FROM `membership` M, 
INNER JOIN `users` U ON u.MembershipID = M.MembershipID (or UserID?)
INNER JOIN `person` P.PersonID onM.PersonID
INNER JOIN `membershipperson` MP ON MP.PersonID = P.PersonID
WHERE `LastActiveYear` = 2012 AND `IsApproved` = 1

好奇,为什么你有两个不同的用户和人?

答案 1 :(得分:0)

SELECT LastActiveyear, M.MembershipID, P.FIRSTNAME, P.LASTNAME, U.IsApproved
FROM `membership` M
    JOIN `membershipperson` MP ON MP.MembershipID = M.MembershipID
    JOIN `users` U ON U.PersonID = MP.PersonID
    JOIN `person` P ON P.PersonID = MP.PersonID
WHERE `LastActiveYear` = 2012 AND `IsApproved` = 1

您需要从membershipmembershippersonusersperson向后工作。上面修改后的查询中的JOIN语句就是这样做的。