我有这个 MySQL 查询,在几个表上有多个连接。其中一个表是作业列表。我想在第一份工作日期添加一个 where
子句。
SELECT leads.*, orders.*, jobs.*
FROM leads
LEFT JOIN orders ON leads.lead_id = orders.lead_id
LEFT JOIN jobs ON orders.order_id = jobs.order_id
WHERE (first_job_date) >= $date
现在我不明白如何从所有这些工作中获取 first_job_date。 我试过:
first_job_date = (
SELECT job_date
FROM jobs
WHERE jobs.order_id = orders.order_id
ORDER BY jobs.job_date
LIMIT 1
)
但它永远不会起作用,尽管当我将此 SELECT
语句放入 SELECT
查询中时它会起作用。
预先感谢您的帮助。
最佳答案
了解问题后更新
如果您想要订单中的所有工作,其第一个 job_date 是 >= $date ...
这可行:
[WHERE] date > (
SELECT MIN(temp.job_date)
FROM jobs temp
WHERE temp.order_id = jobs.order_id
)
或者添加为连接中的子查询
LEFT JOIN (
SELECT temp.order_id, MIN(temp.job_date) as job_date
FROM jobs temp
GROUP BY temp.order_id
) as first_job_date ON (
temp.order_id=jobs.order_id)
然后在您的 WHERE
中,您可以与 first_job_date.job_date
关于php - 第一份工作日期的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45978445/