HEREに同様の質問をしましたが、これはそれを拡張します。
元のクエリは次のとおりです。
SELECT p.pid
, p.title
, p.description
, p.price
, p.datecreated AS pdate
, p.image1
, c.cid
, c.comment
, c.datecreated AS cdate
, pa.fname AS PFName
, pa.lname AS PLName
, ca.fname AS CFName
, ca.lname AS CLName
FROM tblPosts p
LEFT JOIN tblUsers pa ON pa.uid = p.uid
LEFT JOIN tblComments c ON p.pid = c.pid
LEFT JOIN tblUsers ca ON ca.uid = c.uid
ORDER BY p.pid
2 つの異なる値のいずれかである各投稿 (statusType) のステータスを保持する 4 番目のテーブル (tblPostStatus) を追加する必要があります。JOIN を追加しようとすると、tblPostStatus の各行に 1 つずつ重複した行が表示されるようです (このテーブルには 3 つのレコードがあります)。このテーブルには、フィールド sid、pid、uid、statusType があります。
新しいクエリ:
SELECT p.pid
, p.title
, p.description
, p.price
, p.datecreated AS pdate
, p.image1
, c.cid
, c.comment
, c.datecreated AS cdate
, pa.fname AS PFName
, pa.lname AS PLName
, ca.fname AS CFName
, ca.lname AS CLName
, ps.statusType
FROM tblPosts p
LEFT JOIN tblUsers pa ON pa.uid = p.uid
LEFT JOIN tblComments c ON p.pid = c.pid
LEFT JOIN tblUsers ca ON ca.uid = c.uid
LEFT JOIN tblPostStatus ps ON p.pid = ps.pid
ORDER BY p.pid
クエリ結果の写真を参照してください:
これらの結果は適切に見えますか、それとも私のやり方が間違っていますか?