我可以用两个请求完成我想要的操作,但我只想用一个请求来完成。只有在字段不为空的情况下才能进行内部加入
其实,我有4个表有:
Table 1 : id, sub-id
Table 2 : id, sub-id
Table 3 : id, login
Table 4 : id, login
我作出这样的请求:
SELECT Table1.id, Table1.sub-id, Table2.id, Table2.sub-id,
Table3.login, Table4.login FROM Table1
INNER JOIN Table2 ON (Table1.id = Table2.id AND Table1.sub-id = Table2.sub-id)
INNER JOIN Table3 ON (Table3.id = Table1.id)
INNER JOIN Table4 ON (Table4.id = Table1.id)
WHERE Table1.id = "my_id" AND Table1.sub-id = "my_subid"
我想加入Table3
只有id
不为空,如果是空的,我加入Table4
。
你有什么想法吗?
我听说左连接可以提供帮助,但我并不习惯这些关键字,所以......?
如果你可以保证表3和表4中的id不相等,那么上面的查询就没问题。否则,您需要查看我认为的动态SQL路由。 – anothershrubery 2011-05-12 14:29:16
[SQL加入的视觉解释](http://www.codinghorror.com/blog/archives/000976.html) – 2011-05-12 14:29:44