我想离开加入此查询,但它似乎无法正常工作
select *,(SELECT datediff(t1.expirydate,CURDATE())as daysleft
from tbl1 t1,
left join tbl2 t2 on (t1.mid=t2.mid and t1.pid=t2.pid and t1.uid=3)
您的SQL语法有错误;
right syntax to use near 'left join tbl2 t2 on (t1.mid=t2.mid and t1.pid=t2.p' at line 3
请让我知道我哪里错了
这里正在加入3个表但是没有用
SELECT t1.*, t2.*,t3.* datediff(t1.expirydate, CURDATE()) AS daysleft FROM tbl1 t1 left join
tbl2 t2 on t1.mid = t2.mid and t1.pid = t2.pid left join tbl3 t3 on t3.pid = t2.pid where t1.uid=3
for knw 3 table但是我得到语法错误
答案 0 :(得分:2)
你没有在连接之间加一个逗号。
SELECT t1.*, t2.*, datediff(fsp.expirydate, CURDATE()) AS daysleft
FROM tbl1 t1
left join tbl2 t2 on t1.mid = t2.mid and t1.pid = t2.pid
cross join fsp
where t1.uid = 3
您也不应将t1.uid = 3
条件放在ON
子句中。 ON
应该只包含与这两个表相关的条件,对于LEFT JOIN
,它还可以包含您要加入的表格的条件(在这种情况下为t2
)。< / p>
答案 1 :(得分:1)
第2行“t1”后没有逗号。
另外我认为你不能在第1行做“*”,你需要做“SELECT *”或“SELECT column,column2”
答案 2 :(得分:1)
您在左连接之前使用逗号(,) 这是不正确的Synatx
试试这个
select t1.*,(SELECT datediff(fsp.expirydate,CURDATE())as daysleft
from tbl1 t1
left join tbl2 t2 on (t1.mid=t2.mid and t1.pid=t2.pid and t1.uid=3)