2011-08-09 12 views
0

私は、MySQLデータベース内のテーブル3があります。サブクエリMySQLのヘルプ

  1. ユーザーを。
  2. データと呼ばれる日付フィールドを持つ会社。
  3. idUserとidCompanyを持つオブジェクト。 IDP = XXとIDI =(IDを持つオブジェクトテーブルにはレコードがあってはならない:私は会社の日付フィールドに特定の日付を持っている企業を取得する必要があり、それは以下のルールを満たして

特定の日付yy-mm-ddを持っている会社の)

どうすればこのクエリを書くことができますか?

答えて

1
SELECT * FROM Company WHERE data = '2011-08-09' AND 
Company.id NOT IN 
(SELECT Object.idI FROM Object WHERE Object.idI = Company.id AND Object.idP = 'XX') 

しかし、私はあなたの列とテーブルが再行うことの必要性を命名することを言わなければなりません。はるかに意味があるかもしれません。

Object.idIとObject.idPのインデックスを作成して、より高速に実行する必要があります。

1
SELECT * FROM Company 
    LEFT JOIN Object ON(Object.idP = xx OR Object.idl = Company.id) 
    WHERE Company.date = somedate AND Object.idP IS NULL