2009-07-02 4 views
0

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'によってリンクされています。だから、私が求めているのは、結果を得るために2つをリンクする方法です。

I.e. SELECT the bumph I wantmetrics WHERE(別のテーブルの)userID = '1'、またはプロジェクトテーブルにリストされているprojIDのものはどこにありますか。ユーザーIDとともに表示されます。

ここで、ストレートフォワードジョインは私の答えとは思われません。私は最初に結合によって困惑しています。どのような助け壮大にも感謝

答えて

1

ここに参加しますか?私はあなたのカラム名を知らないのでこれを100%得ることはできませんが、ここではそれを刺しています。

2つのテーブルとその列の詳細を投稿した場合に役立ちます。

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

これは、ユーザーとプロジェクトのためのフィールドを持つテーブルproject_user_accociationを、使用して

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`) 

(そのプロジェクトにユーザーが多対多の私の例である):のように
関連する問題