一条SQL语句胜过两条


one sql statement is better than two?

所以我有以下两个sql语句,我想合并成一个。

SELECT `client_id` FROM `accommodation` WHERE `checkin` >= from AND `checkout` <= to
SELECT `client_id` FROM `conference` WHERE `checkin` >= from AND `checkout` <= to

所以基本上这两个sql语句根据签入和签出日期从两个表中获取数据。

组合这两个语句以获得满足

条件的所有client_ids的最佳方法是什么?

假定,您所说的"满足条件"是指同时满足两个条件。这表明是join。所以试试这个:

SELECT a.`client_id`
FROM `accommodation` a join
     conference c
     on a.client_id = c.client_id
WHERE a.checkin >= from AND a.checkout <= to and
      c.checkin >= from AND c.checkout <= to;
当然,应该避免使用from这样的保留字作为列名或变量名。如果您觉得必须使用一个字符,请务必转义。