mySQL - 使用另一个table.field中的数据来确定查询中的结果

时间:2009-07-02 15:37:46

标签: php mysql syntax

再次陷入mySQL语法和查询结构问题。我目前正在做这个查询: -

SELECT DATE_FORMAT(`when`, '%e/%c/%Y')date
     , COUNT(`ip`) AddressCount
  FROM `metrics`
 WHERE `projID` = '$projID'
 GROUP BY DATE(`when`)

这可以很好地找到特定数量的IP地址命中。但是,我现在要做的是为所有用户的项目提供一个整体。但是,这个表不包含用户的ID,而project表包含用户的ID。它们通过'projID'链接。所以,我要问的是如何将两者联系起来以获得结果。

即。 SELECT the bumph I want FROM metrics WHERE(另一个表)userID ='1'或者,项目表中列出的任何projID = 1。与userID一起。

现在,直接加入似乎不是我的答案?首先,我对加入感到困惑。任何帮助盛大赞赏。

2 个答案:

答案 0 :(得分:1)

你想在这里加入。我不会100%正确,因为我不知道你的专栏名称,但这里有一个刺。

如果您发布了有关两个表及其列的更多信息,将会很有帮助。

SELECT DATE_FORMAT(m.`when`, '%e/%c/%Y')date
     , COUNT(`ip`) AddressCount
     , o.`userID`
  FROM `metrics` m
  LEFT JOIN `other_table` o
    ON m.`userID` = o.`userID` -- you'll likely need to change this bit
 WHERE `projID` = '$projID'
   AND o.`userID` = [Value] -- optional
 GROUP BY DATE(`when`)

答案 1 :(得分:1)

加入他们吧?如:

SELECT DATE_FORMAT(`when`, '%e/%c/%Y')date
     , COUNT(`ip`) AddressCount
  FROM `metrics`, project_user_association_table puat
 WHERE `projID` = puat.projId
   AND puat.userId = 123456789
 GROUP BY DATE(`when`)

这使用了一个表project_user_accociation,它有一个用户和项目的字段(因此用户对项目的项目在我的例子中是多对多的)