我的桌子:
T1 = Projects
T2 = bid_details
T3 = bid_submission_details
T4 = quote_submission_details
这就是数据流的工作原理:
SQL代码:
"SELECT *,T3.bidsubmit_date,T4.Quotesubmit_date FROM `Projects` T1
LEFT JOIN `bid_details` T2 ON(T2.proj_reff = T1.proj_reff)
LEFT JOIN `bid_submission_details` T3 ON(T3.bid_reff = T2.bid_reff)
LEFT JOIN `quote_submission_details` T4 ON(T4.proj_reff = T1.proj_reff)
ORDER BY T3.bidsubmit_date,T4.Quotesubmit_date ASC";
结果视图:
我尝试了很多方法来提交日期。但没有任何效果。在结果视图中,蓝色突出显示的行是2014年的日期,但是当我按升序排序时,它不会出现在列表的顶部。
它始终首先从Quote Submission表中排序结果,然后从Bid Submission表中排序结果。可以在结果视图中看到项目类型。
我希望通过提交日期获得订单,无论它是什么类型的项目!
答案 0 :(得分:0)
将COALESCE()函数与其他三个表一起使用。
SELECT *,T3.bidsubmit_date,T4.sub_date,
COALESCE(T3.bidsubmit_date,T4.sub_date) AS SubmiDates
FROM `$SQLTable` T1
LEFT JOIN `quote_submission_details` T4 ON(T4.pro_ref_no = T1.ref_no)
LEFT JOIN `bid_details` T2 ON(T2.pro_ref_no = T1.ref_no)
LEFT JOIN `bid_submission_details` T3 ON(T3.bid_ref_no = T2.bid_ref_no)
ORDER BY SubmiDates ASC";
经过许多非常高兴的人找到了解决方案!!!