0

我有 2 个表“浏览器”和“投票”。我需要所有浏览器,只需要 vote_ranking 和 user_id 的投票。有时没有选票,但我仍然需要浏览器。这就是我写的代码:

SELECT browsers.*, votes.*
FROM browsers LEFT JOIN votes ON browsers.app_id = votes.app_id
WHERE vote_ranking = '$ranking' AND user_id = $userid or vote_id IS NULL

问题是当没有投票时(vote_id IS NULL),app_id 更改为 NULL。但即使投票中没有 app_id,我也需要保留浏览器 app_id。

我可以仅在 the're 是 vote_id 的行上加入表格投票吗?或者任何类似的东西做我需要的?

谢谢

4

1 回答 1

1

尝试这个:

SELECT browsers.*, votes.vote_ranking, votes.user_id
FROM browsers
LEFT JOIN votes
  ON browsers.app_id = votes.app_id
  AND vote_ranking = '$ranking' 
  AND user_id = $userid

这样,只有当它具有适当的 vote_ranking 时,才会加入来自投票的相应记录。否则会有NULLs,但您仍然会保留来自 的数据browsers

于 2012-04-12T19:52:39.967 回答