0
products (products_id, name, type)
orderform (orderform_id, product_id, country_id, price)

特定の国IDのorderformテーブルに存在しないすべての商品を取得したい。

以下は正しくありません。より迅速な方法があることを理解しています。正しい結果セットを取得するだけでは、速度は実際には問題ではありません。

SELECT * FROM products p
    left JOIN orderform o ON o.product_id = p.product_id

WHERe o.product_id is NULL AND o.jur_id = 10

みんなとギャルに感謝します

4

3 に答える 3

0
SELECT * 
FROM products p
WHERE product_id NOT IN(SELECT product_id
                        FROM orderform 
                        WHERE jur_id = 10);

また、追加の条件を結合条件に移動してみてください。

SELECT * 
FROM products p
left JOIN orderform o  ON o.product_id = p.product_id
                      AND o.jur_id = 10                        
WHERe o.product_id is NULL;
于 2013-02-12T11:54:45.750 に答える
0

これは簡単になります

 SELECT * 
 FROM products p
 WHERE products_id NOT IN (SELECT DISTINCT product_id 
                            FROM orderform
                            WHERE country_id = 10)

jur_idはあなたのスキーマで見ることができません、あなたが望むならあなたもそのフィルターを適用することができます

于 2013-02-12T11:55:02.927 に答える
0

こんな感じになります!(最善の方法ではありませんが)

SELECT * FROM products p
left JOIN (select * from orderform WHERe product_id is NULL AND jur_id = 10) o ON o.product_id = p.product_id
于 2013-02-12T11:58:57.730 に答える