2017-10-16 68 views
0

我的查詢是這樣的:GET結果2

SELECT 
    id, 
    IF(allotment_type = 'Agent', COUNT(allotment_type), 0) AS total 
FROM vip_allotment 
WHERE 
    (SELECT 
     date_from, 
     date_to 
    FROM date_total 
    WHERE 
     date_from >= '$date_1' 
     AND date_to <= '$date_2') 

我有一個表命名vip_allotment和我想要的結果是基於日期命名date_total另一個表,我想打確定date_from is >= $variable and date_to <= $variable2

主要問題是根據table2,我無法獲得table1的結果。

新的編輯:

vip_allotment fiels是:

id 
general_setting_id 
ddate 
timex 
hotel_id 
cr_by 
emp_id 
update_emp_id 
notes 
date_from 
date_to 
allotment_type 

date_total表:

id 
date_from 
date_to 
+1

表'vip_allotment'和'date_total'加入了哪些字段?你能向我們展示表格定義和一些示例數據嗎? – Moseleyi

+0

@Moseleyi我編輯的帖子可能會幫助 –

+0

那麼'date_from'和'date_to'表之間的連接嗎?如果是,那麼你不需要'date_total'表,如果它是一個否,我不知道你在申請第二張表是什麼? – Moseleyi

回答

0
SELECT 
    id, 
    IF(allotment_type = 'Agent', COUNT(allotment_type), 0) AS total 
FROM vip_allotment va 
    LEFT JOIN date_total dt ON dt.date_from >= '$date_1' AND dt.date_to <= '$date_2' 
WHERE 
    va.ddate >= dt.date_from 
    AND va.ddate <= dt.date_to 

正如你可以看到WHERE子句現在包含一個字段va.ddate被檢查反對加入的結果找到範圍從date_total根據參數。

它遠非完美(例如,您可能會從dt獲得多個結果),但只是想知道這是您嘗試執行的操作的正確方向嗎?