我当前有一个应该执行以下操作的查询:
它在表格中检查了Tafel'最大数量的玩家'是。然后它进入RoundRegistered'表,以查看是否有人已经注册到该表。
它现在做的是:它检查是否有一个&tffel'那还不够。如果是这样的话,它会返回第一个,所以如果有更多它不关心它们,它只需要第一个。
但这是我的问题:如果在RoundRegistered'中没有至少1条记录。桌子上,它找不到任何Tafel'记录。所以我想要做的就是左连接,所以它仍然可以回馈一个' Tafel'在同样的限制下记录。唯一阻止它的东西(我认为)就是HAVING ..
''.join([s[i] for i in xrange(0, len(s), 2)])
任何人都有任何想法? 感谢。
答案 0 :(得分:0)
尝试使用左连接
SELECT T.* FROM TAFEL AS T
LEFT JOIN RoundRegistration AS RR ON RR.TafelID = T.ID
WHERE RR.RONDE = 1
GROUP BY T.ID
HAVING COUNT(RR.ID) < T.Max_Aantal_spelers
LIMIT 1
没有&#39; LEFT&#39;你在做什么&#39; INNER JOIN&#39;
答案 1 :(得分:0)
WHERE
子句正在撤消LEFT JOIN
。将条件移动到ON
子句:
SELECT T.*
FROM TAFEL T LEFT JOIN
RoundRegistration RR
ON RR.TafelID = T.ID AND RR.RONDE = 1
GROUP BY T.ID
HAVING COUNT(RR.ID) < T.Max_Aantal_spelers
LIMIT 1