私はこれを最善の方法で説明します。INNER JOINを使用したSQLクエリは、数値と一致する場合に特定の値を返すように作成されました。
2つのIDと一致する3つのテーブルを持つ3つの内部結合を実行するSQLクエリがあります(itemテーブルとitemTypeテーブルがあります。item.itemTypeIDはitemType.idにリンクされています)。
私のコードでは、Itemに関連付けられたItemTypeがない場合、item.itemTypeIDは-1に設定されます。
しかし、このクエリの場合、ID-1のitemTypeは存在しないため、レコードは返されません。
itemTypeを持つレコードだけでなく、itemTypeが-1のレコードをすべて戻し、関連する返された要素をNULLに設定する必要があります。
My SQLクエリは次のとおりです。
` SELECTは関係なく、彼らがitemTypeにテーブルにマッチしているかどうかの、これは、アイテムテーブルからすべてのレコードを返します..あなたは、外部結合を必要としている
, items.code
, items.description
, items.expirydate
, items.batchnumber
, items.serialnumber
, items.orderref
, items.datepurchased
, items.price
, items.consigcalloff
, items.commodity_qty
, itemtypes.code
, itemtypes.description
, locations.code
, locations.description
, keepers.code
, keepers.fname
, keepers.lname
FROM items inner join itemtypes ON items.type = itemtypes.id inner join keepers ON items.keeper = keepers.id inner join locations ON items.location = locations.id`
おそらく左に参加しますか? – geekchic
-1の値はitems.ItemTypeIDのitemsテーブルに実際に格納されていますか?またはこれを防ぐことができるpk-fk関係が定義されていますか? – xQbert