私は注文のデータベースを持っています。その詳細は多くのテーブルに保持されています。注文、注文アイテム、顧客、製品、製品_アイテム、メモ。各注文には、customersテーブルとproductsテーブルに1つの関連エントリがあり、products_itemsテーブルには少なくとも1つのエントリがあります。 notesテーブルで注文のエントリがある場合とない場合があります。MYSQL - 関連するテーブルにエントリがあるかどうかを調べる効率的な方法
私は、配列を作成していたから注文データを取得するために、次のクエリを持っている: -
SELECT * FROM orders o
INNER JOIN order_items oi ON oi.order_id = o.order_id
INNER JOIN customer c ON o.customer_id = c.customer_id
INNER JOIN product p ON oi.product_id = p.product_id
INNER JOIN product_item pi ON pi.product_item_id = oi.product_item_id
私は各注文項目の個別の行を作成し、それが必要なので、これは動作します。私が効率的にやっていないのは、注文に関連するメモがあるかどうかを調べることです。サブクエリを使用すると、非常に非効率的(1000以上のオーダーが存在する可能性が高い)になり、JOINを使用すると、オーダーアイテムは、オーダーに関連付けられた複数のノートがある場合に複製されます。ノートがあるかどうかを調べるにはどうすればよいですか?
ご協力いただきまして誠にありがとうございます。
..あなたは何を期待していますか?ノートが返されていない行はありませんか? – Mihai
注文にメモがあるかどうかを知るだけで、実際のメモを取り出す必要はありません。 – Jules
あなたはメモなしで注文を受けたいのですか?テーブルにヒットせずに存在するかどうかを確認することはできません – Mihai