2011-06-17 17 views
1

このクエリで少し問題があります。私は2つのテーブル...MySQLクエリ2テーブル

Account - 
ResourceID (int) 
AccountID (int) (unique auto-inc) 

Resource - 
TextName (varchar) 
ResourceID (int) (unique auto-inc) 
CompanyID (int) 

私が持っているすべてのアカウントIDであると私はレコードと同じ企業IDを持っているリソーステーブルに私のすべてのレコードのTEXTNAMEとのResourceIDを教えてくれます1つのクエリを作成する必要が同じResourceIDと私が提供するAccountIDを持っているアカウントテーブルに

これまで私がこれまで持っていたことは、既に1つのエントリに絞っています...そして、私はまだCompanyIDを組み込むことを試み始めていません。

SELECT r.ResId, r.FirstName, r.LastName 
FROM account a, resource r 
WHERE a.AccId='7' AND a.ResId = r.ResId 

何か助けていただければ幸いです。おかげで

+0

AccountテーブルにCompanyIDフィールドはありますか? – Olaf

+0

残念ながら、それはずっと簡単になります:) –

答えて

2

あなたは会社を共有する同様のリソースを取得するには、自動結合が必要です!

SELECT rSameCompany.ResId, rSameCompany.FirstName, rSameCompany.LastName 
FROM resource r 
    INNER JOIN resource rSameCompany 
     ON r.CompanyID = rSameCompany.CompanyID 
    INNER JOIN account a 
     ON r.ResourceID = a.ResourceID 
     AND a.AccId='7' 
+0

私はあなたが正しい道にここにいると信じています。しかし、これは同じレコードの2つを引き上げる。私はクエリと同じ結果を得ますが、2回はAccountテーブルのAccountIDを所有するレコードのResID(と名前)です。 –

+0

私は間違いを犯しました。それをテストしても簡単ではありません:)今は動作しなければなりません! –

0

あなたはAccount.ResourceID = Resource.ResourceIDLEFT JOINにしたいです。

関連する問題