mySQL - 使用另一个table.field中的数据来确定查询中的结果
问题描述:
再次导致mySQL语法和查询结构问题。我目前正在做这个查询罚款: -mySQL - 使用另一个table.field中的数据来确定查询中的结果
SELECT DATE_FORMAT(`when`, '%e/%c/%Y')date
, COUNT(`ip`) AddressCount
FROM `metrics`
WHERE `projID` = '$projID'
GROUP BY DATE(`when`)
这工作正常,找到具体数量的IP地址的命中。然而,我现在试图做的是为所有用户的项目提供一个整体。但是,该表不包含用户的ID,项目表就是这样。他们通过'projID'链接。所以,我问的是如何将两者联系起来以获得结果。
I.e. SELECT the bumph I want
FROM metrics
WHERE(ANOTHER TABLE's)userID
='1'或者,WHERE项目表中列出的任何projID's = 1。与用户ID一起。
现在,直接加入似乎不是我的答案?我首先感到困惑。任何帮助宏大的赞赏。
答
你想加入这里。因为我不知道你的专栏名称,所以我不会得到这个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`)
答
只要加入他们?如:
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,其中有一个领域的用户和项目(使用户项目是许多一对多在我的例子)