以下は、私のデータベースのスキーマです。クエリに取り組んでいますが、正しい結果を得ることができません。
TABLE: CUSTOMERINFORMATION
FIELDS: CUSTID, ACTOPTIONID,VAT,MINIMUMDOCT
TABLE: ONLINEORDERS
FIELDS: CUSTID, TOTALQUANTITY
TABLE: OFFLINEORDERS
FIELDS: CUSTID, TOTALQUANTITY
TABLE: ACTOPTS
FIELDS: ACTOPTIONID,ACTNAME
次のような出力: 一時テーブル: CUSTID、ACTOPTIONID、TOTALONLINEQ、TOTALOFFLINEQ、ACTNAME
上記のすべてのテーブルと前述のフィールドを 1 つのテーブルに結合する必要があります。また、NULL 行が返されるようにする必要もあります。上記すべての UNION ALL を意味します。
これは、上記のすべてが別のテーブルにエクスポートされるデータ エクスポート ユーティリティを作成することです。ただし、他のテーブルと一致するレコードがテーブルにない場合でも、レコードが除外されないようにする必要があります。
編集済み
以下は私の質問です:
SELECT table1.*, table2.*, table3.*
FROM (SELECT ao.actname,
ci.custid,
ci.actoptionid,
ci.minimumdoct,
ci.vat
FROM customerinformation ci, actoptions ao
WHERE ci.actoptionid = ao.actoptionid) table1
LEFT JOIN (SELECT custid, totalquantity, FROM onlineorders) table2
ON table1.custid = table2.custid
LEFT JOIN (SELECT custid FROM offlineorders) table3
ON table2.custid = table3.custid
ただし、上記は RIGHT のテーブルから行を返しません。テーブルから右側の行を返したいのですが、そのためには、これらすべてで UNION ALL を使用する必要があると思います。それ、どうやったら出来るの?