我正在使用带有修改后的ssp.class.php的数据表,以允许加入联接和其他自定义功能。在下面的示例中,我只想返回computers
按ID排序的前x行的结果。因此,我先列出computers
我的条件,然后再列出LEFT JOIN,users
然后再列出logs
(我要得到的信息)。
效果很好,但是由于左连接,我得到的结果是空的。例如,虽然我的结果集仅包含logs
正确的computers
...如果logs
没有针对特定用户/计算机组合的行,则我的行中包含空log
数据,但具有用户/计算机数据却无济于事。
我唯一的选择是包括WHERE条件,以防止在联接中使用空值logs
...WHERE logs.user_id != ''
还是我在选择中缺少其他逻辑呢?
SELECT (*see note)
FROM
( SELECT account_id, computer_id, computer_name
FROM computers
ORDER BY computer_id ASC LIMIT 0, ".$_SESSION['user']['licenses']."
) as c
LEFT JOIN users
on users.computer_id = c.computer_id
LEFT JOIN logs
on logs.user_id = users.user_id
您可以仅将JOIN用于表日志。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句