小编Nic*_*ier的帖子

内连接和右连接相同的查询

我使用MySQL和InnoDB,我有一个表reserver2列:idReservationidChambre 我有一个表reservation和表chambre

现在我希望我的查询返回每个不在我的 dateDebut 和 dateFin 之间的“chambre.id”。

以下是我的实际查询:

SELECT cre.id
FROM   reserver AS rer
       INNER JOIN reservation AS ron
         ON rer.idReservation = ron.id
       RIGHT JOIN chambre AS cre
         ON rer.idChambre = cre.id
WHERE (ron.dateFin < ?
    OR ron.dateDebut > ?
    OR (ron.dateFin = NULL AND ron.dateDebut = NULL))
Run Code Online (Sandbox Code Playgroud)

我的问题是当 chambre 的 id 已经在 Reserver 中时,我的返回值只包含 chambre。

我的第二个问题是“RIGHT JOIN”将每个 chambre 添加到我的查询中,但我想要的只是 chambre 为:“ron.dateFin < ? OR ron.dateDebut > ?” 或尚未与储备者联系的房间。

编辑:这里有一些示例行:

储备:

id …
Run Code Online (Sandbox Code Playgroud)

mysql innodb join

4
推荐指数
1
解决办法
4297
查看次数

标签 统计

innodb ×1

join ×1

mysql ×1