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的语句(因此不返回ID 1),因为它与表2中的颜色链接很小。
道歉,如果我把它弄得比这更令人困惑。我是新手来交叉引用两个表。
Select Table1.ID
from Table1, Table2
where Table1.colour = Table2.colour
and table2.size != Small
我想我需要一个内连接查询,或者不存在语句?
任何帮助将不胜感激
答案 0 :(得分: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);