1
ID      Colour           colour     Size
== Table 1 ==          ====   Table 2   ====
1.**  |  **Blue**     **Blue**    |     Big
2.    |    Red        **Blue**    |     Average
3.    |    Yellow     **Blue**    |   **Small**
4.    |    Orange       Purple    |     Big
5.    |    Pink         Grey      |     Average
6.    |    Green        Red       |     Big

やあ、

上の表で、MySQL では「Small」の値を持たない ID を返す必要があります。「小」でも「ID 1」が返されるため、「サイズ」を含めないように指示したかのように困っています。青色にはまだ許容される値 (Big + Average) があるためです。Blue は表 2 の色にわずかにリンクされているため、Blue を完全に無視する (したがって ID 1 を返さない) ステートメントが必要です。

これを実際よりも混乱させた場合はお詫び申し上げます。2 つのテーブルを相互参照するのは初めてです。

Select Table1.ID
from Table1, Table2
where Table1.colour = Table2.colour
and table2.size != Small

内部結合クエリまたは Not Exist ステートメントが必要だと思いますか?

どんな助けでもいただければ幸いです

4

1 に答える 1

0

内部結合は必要ありません。ただし、構文エラーがありました:

Select Table1.ID
from Table1, Table2
where Table1.colour = Table2.colour
and NOT EXISTS 
(SELECT T3.size FROM Table2 T3 WHERE 
  T3.size = 'Small' AND T3.colour = Table1.colour);
于 2012-09-18T14:33:42.077 に答える