Sql server Sybase连接到sql server的转换

Sql server Sybase连接到sql server的转换,sql-server,join,Sql Server,Join,我对sybase非常陌生,发现很难将此连接查询转换为sql server。谢谢你的帮助。 Sybase查询 FROM A,B,C,D WHERE (A.fd_id = :variable ) AND B.ct_id =* D.ct_comb_id AND A.ct_in_id = D.ct_ind_id AND D.ct_comb_id *= C.ct_id AND C.ct_type = 'H' SQL server(我已经尝试过) 试试这样的 SELECT * FROM A INNER

我对sybase非常陌生,发现很难将此连接查询转换为sql server。谢谢你的帮助。 Sybase查询

FROM A,B,C,D
WHERE (A.fd_id = :variable )
AND B.ct_id =* D.ct_comb_id
AND A.ct_in_id = D.ct_ind_id 
AND D.ct_comb_id *= C.ct_id
AND C.ct_type = 'H' 
SQL server(我已经尝试过)


试试这样的

SELECT *
FROM A
INNER JOIN D   ON A.ct_in_id = D.ct_ind_id 
              AND A.fd_id = @variable
LEFT  JOIN C   ON D.ct_comb_id = C.ct_id
              AND C.ct_type = 'H' 
LEFT  JOIN B   ON B.ct_id = D.ct_comb_id

你需要给我们更多的合作机会。例如,如何填充变量?你收到了什么错误?*=到底是什么意思?@Andrew
*=
表示
左连接
类似地
=*
表示
右连接
etcIn sybase(=)表示左外连接和(=)右外连接。我并没有遇到任何错误和棘手的情况,sybase和sql server查询输出都是空的。所以我无法测试我的转换查询。谢谢汉克斯·阿里。我可以知道你为什么用两个左连接吗。因为原始查询有一个左右连接?是的,我有两个用户左连接,我还更改了表的连接顺序,先左连接,然后右连接没有意义,无论如何,尝试一下,如果需要,进行适当的更改。好的,谢谢。最后一个问题是在sybase中使用Where子句,您已经在JOIN子句中使用了该条件。如果我使用单独的where子句(其中A.fd_id=:variable和C.ct_type='H')而不是in join子句,那么输出会有所不同吗?如果您只使用内部联接,那么在放置where子句条件的地方不会有什么不同,但是在外部联接的情况下,它会产生不同,最好在子句上的
中使用它们。
SELECT *
FROM A
INNER JOIN D   ON A.ct_in_id = D.ct_ind_id 
              AND A.fd_id = @variable
LEFT  JOIN C   ON D.ct_comb_id = C.ct_id
              AND C.ct_type = 'H' 
LEFT  JOIN B   ON B.ct_id = D.ct_comb_id