0

このクエリは私が望む結果を与えてくれ、それは完璧に機能します。

        SELECT * 
        FROM npc5 
        FULL JOIN joeall ON merchnumber = joeall.id 
        WHERE date='$period' 
        ORDER BY DATE");

joeall次に、マーチャント番号がテーブルにないレコードを取得したいと思います。ON merchnumber != joeall.id

4

3 に答える 3

1

NOTINのSELECTステートメントにあるIDを除外する

$query1 = mysql_query("
    SELECT * 
    FROM npc5 
    WHERE date='$period' 
    AND merchnumber NOT IN (SELECT id FROM joeall)
    ORDER BY DATE");
于 2012-11-07T00:14:04.517 に答える
1

マルチフィールドインデックスがオンになっていることを確認しdatemerchnumber速度を上げてください。

    SELECT * 
    FROM npc5 
    WHERE date='$period' 
    AND merchnumber NOT IN (SELECT id FROM JOEALL)
    ORDER BY DATE
于 2012-11-07T00:14:36.237 に答える
1

相関サブクエリは非常に非効率的である可能性があるため、可能な限り回避する必要があります。

したがって、私はあなたにそうすることをお勧めしません

SELECT * 
FROM npc5 
WHERE date='$period' 
AND merchnumber NOT IN (SELECT id FROM JOEALL)
ORDER BY DATE

http://devzone.advantagedatabase.com/dz/content.aspx?Key=42&ID=75をご覧ください

次のようなものに変更することをお勧めします

SELECT 
    * 
FROM npc5 LEFT JOIN JOEALL on 
    npc5.merchnumber = joeall.id 
WHERE 
    joeall.id is null 
        and 
    date='$period'
ORDER BY
    date;

よろしく

于 2012-11-07T00:51:36.003 に答える