このように見える5つのテーブルを結合しようとしています
ポストテーブル
ID | 製品 | ユーザー-私たち | メイク ID | ディーラー ID | 保留中 | .... 他の 30 列 ... |
テーブルを作る
ID | 作る |
状態表
プレフィックス | 状態 | 都市 | ジップ
メンバー表
ID | 名前 | 電子メール | パスワード | zip | ディーラーID
ディーラーテーブル
ID | ディーラー名 | 都市 | 状態 | zip | 住所 | 電話
MySql クエリは次のようになります
SELECT *
FROM `post` AS p
JOIN (`make` AS m, `state` AS s, `members` AS mb, `dealer` AS d)
ON (p.Make = m.id AND p.state = s.id AND p.id = mb.id AND mb.dealer-id = d.id)
WHERE p.pending != '1'
問題は、このクエリがmember.dealer-id = deal.id の行のみを返すことです。LEFT JOIN を使用すると、すべての正しい行が返されますが、テーブルのすべての列は、make、state、members、および deal が NULL になります。これらのテーブルの情報が必要なため、そうすべきではありません。
member.dealer-id が > 0 のdealer
場合にのみテーブルに参加できますか? ディーラー テーブルに ID 0 の行を追加することもできますが、もっと良い方法があるはずです。