现有2个表。
gw_enter(记录向该会员添加一个物品)
ID thing
1 小作业本
1 黑色铅笔
1 白色文具盒
2 黑色文具盒gw_subject(该表存放了物品的列表)
ID thing subject(控制物品类别的)
1 小作业本 1
2 大作业本 1
3 作文本 1
4 白色铅笔 2
5 黑色铅笔 2
6 白色文具盒 3
7 黑色文具盒 3
现在我想读出这样的值:
前提:每一个会员同一类别的物品只能分配一样,
现在我要取这个会员当前状态下,
还能够给他分配的所有的东西。
如:会员2。
现在他只有一个黑色文具盒。
其文具盒的subject是3
那么我需要读出来的值就应该是gw_subject中间subject!=3的所有的值。
我这样写语句,但是却什么值都读不出来。
求高手指点一下。
select * from gw_subject where subject !=(select subject from gw_subject where thing=(select thing from gw_enter where id='" + TextBox1.Text + "'))
gw_enter(记录向该会员添加一个物品)
ID thing
1 小作业本
1 黑色铅笔
1 白色文具盒
2 黑色文具盒gw_subject(该表存放了物品的列表)
ID thing subject(控制物品类别的)
1 小作业本 1
2 大作业本 1
3 作文本 1
4 白色铅笔 2
5 黑色铅笔 2
6 白色文具盒 3
7 黑色文具盒 3
现在我想读出这样的值:
前提:每一个会员同一类别的物品只能分配一样,
现在我要取这个会员当前状态下,
还能够给他分配的所有的东西。
如:会员2。
现在他只有一个黑色文具盒。
其文具盒的subject是3
那么我需要读出来的值就应该是gw_subject中间subject!=3的所有的值。
我这样写语句,但是却什么值都读不出来。
求高手指点一下。
select * from gw_subject where subject !=(select subject from gw_subject where thing=(select thing from gw_enter where id='" + TextBox1.Text + "'))
select * from gw_subject where subject Not In (select A.subject from gw_subject A Inner Join gw_enter B On A.thing= B.thing where B.id='" + TextBox1.Text + "')
where not exists (
select 1 from gw_enter b,gw_subject c
where b.thing=c.thing
and c.subject=a.subject
and b.id='" + TextBox1.Text + "'
)
select A.* from gw_subject A Left Join (select A.subject from gw_subject A Inner Join gw_enter B On A.thing= B.thing where B.id='" + TextBox1.Text + "') B
On A.subject = B.subject Where B.subject Is Null
from gw_subject
where subject not in (select subject from gw_subject as a inner join gw_enter as b on a.thing=b.thing where b.id='" + TextBox1.Text + "' group by subject)
select thing from gw_enter
id='" + TextBox1.Text + "')'"