sql集合运算的问题

lengmianshi 发布于 2017/03/21 15:27
阅读 131
收藏 0

我有这个需求:有三张表a、b、c,其中a表的a_id字段是b表(b_id)和c表(c_id)的外键,现在a表的记录有如下三种情型:

1)记录与b表有关联,用0表示;

2)记录与c表有关联,用1表示;

3)记录与b、c表没有关联,用2表示;

现在只需要查a表,但需要有个字段(值为0或1或2)来标识,a表记录跟b、c表的关联情况,请问这个sql如何写?我想建个视图,但是不会写,请大神帮忙,谢谢

加载中
0
l
lengmianshi

我知道这样可以实现:

a表和b表关联(集合1)

union all

a表和c关联(集合2) 

union all

(a表记录  minus  集合1 minus 集合2)

但需要查询很多遍,感觉性能太差!

0
风翔飞
风翔飞

加什么1,2不如加个字段标识c的外键,原来的标识b的外键

0
l
lengmianshi

引用来自“风翔飞”的评论

加什么1,2不如加个字段标识c的外键,原来的标识b的外键

有道理,我决定在a表加个字段,现在我想利用这个字段来动态地对b表或c表做关联查询可以吗?

l
lengmianshi
多谢!!
风翔飞
风翔飞
可以啊,如果和b表关联用b_id,与c表关联用c_id,两个字段分别对应两个表也不冲突
返回顶部
顶部