mySQL - Bir sorguda sonuçlarını belirlemek için başka table.field verileri kullanma

2 Cevap php

Bir kez daha mySQL sözdizimi ve sorgu yapı sorunlarına gömüldü. Şu anda bu sorgu ince yapıyorum: -

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

Bu IP adresi en hit belirli sayıda bulmak için çalışıyor. Ancak, ne ben şimdi yapmaya çalışıyorum bir kullanıcının projeleri, hepsi için genel bir vermek. Ancak, bu tablo bir kullanıcının kimliği içermez, projeler tablo yok. Bir 'projID' ile bağlantılıdır. Peki, ben soruyorum ben bir sonuç elde etmek için iki bağlantı nasıl olduğunu.

Yani the bumph I want SELECT FROM metrics NEREDE herhangi projID en = olanlar projeler tabloda listelenen (başka bir tablonun) userID = '1 'ya,. kullanıcı kimliği yanında.

Şimdi, katılmak yalındır benim cevap gibi görünüyor değil mi? Ben ilk etapta katılır tarafından anlaşılmaz ediyorum. Herhangi bir yardım büyük takdir.

2 Cevap

Bir katılmak Burada İSTİYORUZ. Ben senin sütun isimlerini bilmiyorum çünkü ben bu% 100 doğru almazsınız, ama burada ona bir bıçak var.

Eğer iki tablo ve sütunlar hakkında daha fazla bilgi yayınlanmıştır eğer yararlı olacaktır.

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

Sadece onlara katılmak? Gibi:

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

Bu tablo, kullanıcı ve proje için bir alan vardır project_user_accociation kullanarak (yani projelere kullanıcıyı çok-çok benim örnekte olduğu)