我有一个Users表和一个Payments表。我需要一个查询,其中列出PaymentStatus = 1的付款表中有记录的用户。MySQL查询使用2个表中的数据
它还必须仅列出具有某个GroupID的用户。 GroupID将通过变量传递,但为简单起见,我们可以将其称为5。
的记录(TimeCompleted)时间戳也必须小于设定时间戳记,但我们可以直接调用这个10
这些都是表中的列(简体):
Users: UserID, GroupID, UserName
Payments: PaymentID, UserID, PaymentStatus, TimeCompleted
查询应选择字段UserName。
几个小时前,我问过类似的问题,但我问了它错误,我无法让查询正常工作。此外 - 如果用户有多个有效和有效的付款,它只能返回一次用户名。当我试图做到这一点时,我无法做到这一点。
如果你愿意,它可以改进我当前的查询(除了最后一个关于复制返回用户的问题,它可以完成所有工作)。我可能会去了解它虽然完全错误的:
SELECT `Users`.`UserName`
FROM `Users`
LEFT OUTER JOIN `Payments` ON `Users`.`UserID` = `Payments`.`UserID`
WHERE `Payments`.`TimeCompleted` < 10
AND `Payments`.`PaymentStatus` = 1
AND `Users`.`GroupID` = 5
这看起来像是一个家庭作业问题。是吗? – Sandro 2010-08-27 20:39:57
Nah这只是我的一个项目:P我正在尝试查询.. – Matt 2010-08-27 20:46:54