テーブル ビジネス関係/協会を表します。あなたが言及する「関係[船]」はFK(外部キー)であり、クエリには必要ありません。一部の列のサブ行の値は、一部のキー列のサブ行の値でもある必要があると記載されています。必要なのは、行がテーブルにあるときに現在のビジネス状況について何を言っているかを知ることです。 (どのような状況が発生したかを考慮して、FKおよびその他の制約を決定します。)
2つのテーブルを3番目のテーブルのFKと結合する必要があります から :
与えられた
-- rows where product [id_product] is supplied by [id_supplier] ...
ps_product(id_product, id_supplier, ...)
-- rows where carrier [id_carrier] has reference [id_reference] ...
ps_carrier(id_carrier, id_reference, ....)
書く
ps_product s
JOIN ...
ON s.id_product = ...
...
JOIN ps_carrier c
ON ... = id_carrier
WHERE ...
行を取得するには
product [p.id_product] is supplied by [p.id_supplier] ...
AND ...
AND s.id_product = ...
...
AND carrier [c.id_carrier] has reference [c.id_reference] ...
AND ... = id_carrier
AND ...
テーブルの述語を知ってから、テーブルのONまたはWHERE条件を結合して、結果の述語が必要な行に対応するようにする必要があります。
人間が読める形式の説明からSQLクエリを作成するための経験則はありますか?