-1

連絡先、DisCon、RecMast の 3 つのテーブルがあります。次の Sql を使用しますが、処理が非常に遅くなります。Left Join - Is Null メソッドの方がうまくいくかどうかを確認したいですか? もしそうなら、SQLを書くのを手伝ってください。

これが私の遅いSQLです::

vSql2 = "Select Count(CusID) as Cnt2  from Contacts where StaffID = " & gSTaffID & " and  " _
& " CusID NOT IN (Select CusID from DISCON where StaffID = " & gSTaffID & ") and  " _
& " CusID NOT IN (Select CusID from RECMAST where StaffID = " & gSTaffID & ")"
4

2 に答える 2

1

このようなことをするつもりでしたか?

SELECT
        COUNT(Contacts.CusID) AS Cnt2
    FROM Contacts
    LEFT JOIN DISCON ON gSTaffID = DISCON.StaffID
    LEFT JOIN RECMAST ON gSTaffID = DISCON.StaffID
    WHERE
        Contacts.StaffID = gSTaffID
        AND DISCON.StaffID IS NULL
        AND RECMAST.StaffID IS NULL

もちろん、連結ロジックを再度追加する必要があることに注意してください (ただし、SQL インジェクションに対する潜在的な脆弱性を念頭に置いて、prepared statementsまたはそのようなものを使用することを検討してください)。

gSTaffID読みやすくするために、ここにそのクエリを入れただけです。

于 2013-10-10T08:44:10.567 に答える