私は 'ウィジェット'のレコードを含むテーブルを持っていますが、多くの列は異なるテーブルのレコードのIDだけを含んでいます。ウィジェットレコードを編集するときに、ユーザーは不完全であっても保存を行うことができます。彼らは後でそれを開き、続けることができます。 私が持っている問題は、where句にデフォルト値0があり、他のテーブルに一致するフィールドがないため、クエリが何も返されないときに不完全なときです。ここにこの問題を示すスクリプトのサンプルがあります。動的に作成されたSQLはうまくいきません
select Client,Make,Model,Shape
from
widget,clients,makes,models,shapes
where
widget.ClientId = '3' and
widget.MakeId = makes.Id and
widget.ModelId = models.Id and
widget.ShapeId = shapes.Id
私はPHPを使用してこのクエリを動的に構築していますので、できるだけシンプルにしています。すべてのsugestions歓迎、ありがとう。
あなたは 'JOIN'ステートメントを使用する必要が私見:
widget
表があなたのメインテーブルであるので、それが不完全であってもウィジェットを取得するためにwidget
上の他のすべてのテーブルを結合するためにleft join
を使用して、あなたの説明に基づいてそのようなあなたのテーブルを集めることができるようにする。 –
これは、SQL入門ガイドで回答できる基本的な質問です。 – Strawberry
@Strawberry、私は知らない...クエリーの幸福と幸福は技術文献で十分に扱われていない。 – yivi