バウチャーがバウチャーテーブル内で有効かどうかを確認するプログラムを実行しようとしています。プライマリテーブルの内容に基づく条件付き内部結合
バウチャーが有効期限を過ぎているかどうかなどの簡単な検証方法がありますが、特定の製品をブランドまたはサプライヤーで購入した顧客に基づいて条件付きであるバウチャーもあります。
バウチャーは、ブランドに固有ではないので、もし、私がバウチャー
id | brand | supplier | value etc
ブランド
id | name etc
とサプライヤー
id | name etc
のテーブルのテーブルのテーブルを持っていますバウチャーの物語の価値は0
私はテーブルに参加するこのSqlクエリを試しましたが、結果が得られません、私は使用しようとしているバウチャーコード(id)がブランドまたはサプライヤーに固有でないためですと仮定していますか?私は(取引先のためにsimiarly当時と)テーブルbrands
の接合がvouchers
が0よりも大きいテーブルに値brand
を条件となるように、これを書くとどのように
SELECT *, brands.name as brandName, suppliers.name as supplierName
FROM `vouchers`
INNER JOIN brands on vouchers.brand = brands.id
INNER JOIN suppliers on vouchers.supplier = suppliers.id
WHERE vouchers.id= '" & voucherCode & "'
私は外観を持っていましたここにいくつかの他の質問が掲載されていますが、私はそれらを私の状況に関連付けることができる回答を完全には理解できません。
なぜ条件付き結合を行いますか? 'INNER JOIN'の代わりに' LEFT JOIN'を使用してください。 nullレコードを受け取った場合、特定のレコードに対して結果が見つかりません。ヌルでない場合は、アプリケーションにロジックを適用します。ヌルの場合はブランドが見つかりません。データベース層でロジックを使用しないでください。 –
これに答えて、単純に私はSqlとのごみです! –