我有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'。
请注意,这些表包含更多列,我只是展示了此应用程序的相关内容。
谢谢
答案 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
您需要从membership
,membershipperson
,users
和person
向后工作。上面修改后的查询中的JOIN
语句就是这样做的。