你有这两张桌子:
table1
-------------
id
fromId
fromOtherTableId
person
和
Table2
-------------
OtherTableId
Person
第一个问题
此查询工作正常
select t.id
from table1 as t inner join Table2 as a on t.fromOtherTableId=a.OtherTableId
where a.Person = 54
union
select t1.id
from table1 as t1 inner join Table1 as t2 on t1.fromId=t2.fromId
where t2.Person = 54
如何删除联合以使查询仍然有效?
第二个问题
你如何管理你不能在table1中创建一个条目,其中table2.fromothertableid(person)将被放入table1.person(循环的东西)
同样的事实是你不能在table1中创建一个条目,其中table1.fromid(person)将被放入table1.person(循环的东西)
这样会很好:
table1
---------------
1, null, 1 , 100
2, 1, null , 200
table2
--------------
1, 200
这不会很好(介于**之间)
table1
---------------
1, null, 1 , 100
2, 1, null , 200
**3, 1, null , 100**
**4, null, 1, 200**
table2
--------------
1, 200
答案 0 :(得分:0)
问题1:
select t.id
from table1 as t
join Table1 as a on a.fromId = t.fromId
join Table2 as o on o.otherTableId = t.fromOtherTableId
where 54 In (a.Person, o.person)
Queston 2:我对这个架构有很多疑问......从表面上看它似乎不对,但我不知道它试图代表什么样的商业模式......你能详细说明吗?