Mysql 将查询从不存在的位置转换为左联接
我使用的是laravel 5.2,转换此查询时遇到问题Mysql 将查询从不存在的位置转换为左联接,mysql,laravel,laravel-eloquent,Mysql,Laravel,Laravel Eloquent,我使用的是laravel 5.2,转换此查询时遇到问题 DB::select('SELECT m.* FROM member_table AS m JOIN treepaths AS t ON m.membershipid = t.descendant WHERE m.stage >=' . $usermatrixtype . ' AND t.ancestor =' . "'" . $firs
DB::select('SELECT m.*
FROM member_table AS m
JOIN treepaths AS t ON m.membershipid = t.descendant
WHERE m.stage >=' . $usermatrixtype . '
AND t.ancestor =' . "'" . $firstrightchildmembershipid . "'" . '
AND NOT EXISTS (
select user_id from matrix_users AS mr WHERE mr.user_id=m.membershipid AND matrix_id=' . $getusermatrix . '
) LIMIT ' . $results
);
这是我试过的
DB::select('SELECT m.membershipid
FROM member_table AS m
JOIN treepaths AS t ON m.membershipid = t.descendant
WHERE m.stage >=' . $usermatrixtype . '
AND t.ancestor =' . "'" . $firstleftchildmembershipid . "'" .'
LEFT OUTER JOIN matrix_users AS mu ON mu.user_id =m.membershipid WHERE
matrix_id=' . $getusermatrix . ' AND
mu.userid IS NULL
LIMIT ' . $results);
它不返回任何内容请尝试以下操作:
DB::select('SELECT m.membershipid
FROM member_table AS m
JOIN treepaths AS t ON m.membershipid = t.descendant
LEFT JOIN matrix_users AS mu ON mu.user_id =m.membershipid AND matrix_id=' . $getusermatrix . '
WHERE mu.userid IS NULL AND m.stage >=' . $usermatrixtype . '
AND t.ancestor =' . "'" . $firstleftchildmembershipid . "'" .'
LIMIT ' . $results);
在您更改它之前,它是否工作正常?是的,但是非常慢。在第二次查询中,您试图匹配
mu.user\u id=m.membershipid
,然后在最后执行,其中mu.userid为NULL
=这是问题吗?不,只是编辑了它,这不是问题。您找到了m.stage列