2つのテーブルの1つ、またはその両方にある可能性のある日付(データベースのINTEGER)に基づいて並べ替えるSQLクエリを作成しようとしています。
これに関するテーブルのフィールドは次のとおりです。
割り当て:-id-id_lead-date_assigned
リード:-id --date_added
テーブルには他のフィールドがありますが、これらはこの質問には適用されません。
ここで必要なのは、リードの割り当てがない場合、「date_sort」変数をリードのdate_added値にすることです。リードの割り当てがある場合は、それを割り当てのdate_assigned値にします。
私の問題は、クエリを使用しても、結果リストに割り当てがないリードが表示されないことです。
ここに私のクエリが取り組んでいます:
$pagi_sql = "select
l.id, l.id_infusionsoft, l.name_first, l.name_last, l.postcode, a.website as a_website, l.website as l_website, l.date_added,
a.id_dealership, a.id_lead, a.id as id_assign, a.date_assigned,
d.name as dealership,
if(a.id = null, l.date_added, a.date_assigned) as date_sort
from `leads` as l
left join `assignments` as a on (a.id_lead = l.id)
left join `dealerships` as d on (d.id = a.id_dealership)
$where
order by date_sort desc";
これが私の元のクエリです。これは機能しますが、希望どおりに並べ替えられていません。
$pagi_sql = "select
l.id, l.id_infusionsoft, l.name_first, l.name_last, l.postcode, a.website as a_website, l.website as l_website, l.date_added,
a.id_dealership, a.id_lead, a.id as id_assign, a.date_assigned,
d.name as dealership
from `leads` as l
left join `assignments` as a on (a.id_lead = l.id)
left join `dealerships` as d on (d.id = a.id_dealership)
$where
order by l.date_added desc";
リードは複数の割り当てを持つことができます....これが問題だと思います...しかし、私はそれを私が望む方法でソートする方法を理解できません。
これらを変更して、代わりに割り当てテーブルから選択する必要がありますか?しかし、その後、問題が発生しました。同じテーブルに未割り当てのリードをdate_added / date_assignedで並べ替えて表示するにはどうすればよいですか?
どんな助けでも素晴らしいでしょう。