select packages.id AS id,
packages.co_id AS co_id,
(select companies.name from companies where (packages.co_id = companies.id)) AS co_name,
(select companies.tel from companies where (packages.co_id = companies.id)) AS tel,
packages.datetime AS datetime,
(select tracking.datetime from tracking where (packages.id = tracking.pid and action='tookit')) AS tooktime,
(select tracking.datetime from tracking where (packages.id = tracking.pid and action='putit')) AS puttime,
packages.status AS status from packages
这个查询运行得很好,当我运行它但是当我把它作为一个视图并没有显示相同的结果时我在"跟踪"的字段中得到空值表
我重新创建了查询仍有问题
SELECT t1.id , t1.co_id , t2.name, t2.tel, t1.datetime , t3.datetime as tookit, t4.datetime as putit
FROM packages as t1
INNER JOIN companies as t2
ON t1.co_id=t2.id
left JOIN tracking as t3
ON t1.id = t3.pid and t3.action ='tookit'
left JOIN tracking as t4
ON t1.id = t4.pid and t4.action ='putit'
我感谢任何帮助
答案 0 :(得分:0)
重写您的查询检查是否有帮助。
SELECT packages.id AS id, packages.co_id AS co_id, companies.name AS co_name, companies.tel AS tel, packages.datetime AS DATETIME, t1.datetime AS tooktime, t2.datetime AS puttime, packages.status AS STATUS FROM packages LEFT JOIN companies ON packages.co_id = companies.id LEFT JOIN tracking t1 ON packages.id = t1.pid AND t1.ACTION = 'tookit' LEFT JOIN tracking t2 ON packages.id = t2.pid AND t2.ACTION = 'putit'