注文テーブル: order
注文商品テーブル: order_goods
つまり、order_goods には、注文内の各注文のすべての商品情報が保存されます
対象となる注文に含まれる商品とその方法を確認する必要があります。書いてもらいますか?
例: order テーブルで order_no が 20160804164336873986 である注文を検索したいと思います。order と order_goods のすべてのフィールドがリストされています。
注文テーブル: order
注文商品テーブル: order_goods
つまり、order_goods には、注文内の各注文のすべての商品情報が保存されます
対象となる注文に含まれる商品とその方法を確認する必要があります。書いてもらいますか?
例: order テーブルで order_no が 20160804164336873986 である注文を検索したいと思います。order と order_goods のすべてのフィールドがリストされています。
order_goods は 1 つの order_id に対して複数のレコードを持っているため、order_goods を使用して order クエリを左結合します。結合クエリ ステートメントの実行効率は高くないため、最適化する必要があります。 リーリー
リーリー
1対多、リレーショナルモデル
上記の回答のいくつかを読んだ後、質問の要件を満たすことができると思います。強迫性障害を持つ私にとって、トピックをクエリするときに
記号を使用してはいけない、と言わざるを得ません。フィールドを好きなだけ書き出し、同じ名前のフィールドの名前を変更してください。 *
結合と 2 つのクエリへの分割を使用しないことをお勧めします。また、SELECT * も使用しないようにしてください。
私も少し強迫性障害を患っています。最近、mysql を見ると、クエリ対象の条件フィールドがインデックス化されているかどうかを尋ねたくなります。
また、上記の答えを見た後、最初に order テーブル内のデータをクエリし、次にループを使用して各番号 ID に対応する order_goods テーブル内のデータをクエリします。この方法では、個別のクエリによって MySQL が即座にフリーズすることはありません。もちろんこれらはデータ量が特に多い場合に表示されます。データ量が少ない場合は、左結合を使用することについては何も言いません)。
複数のテーブルクエリ。関連する
リーリー
上記の 2 つの記述方法は同じで、2 つのテーブル接続を実装します。
3 つのテーブル接続の記述方法も同様で、たとえば、ID 1: の学生のコースと成績をクエリします。 リーリー