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”。因为蓝色仍然有一个允许的值(大+平均)。我需要一个完全忽略 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 回答