MYSQL从不同的行中选择两个具有相同值的不同字段

MYSQL从不同的行中选择两个具有相同值的不同字段,mysql,Mysql,我有一张桌子: ID APARTMENT_ID CHECK_IN CEHCK_OUT 1 2 2014-18-07 2014-18-09 2 2 2015-01-01 2014-03-02 3 3 2014-08-01 2014-09-01 4 3 2014-09-01 2014-12-09 5 4

我有一张桌子:

ID   APARTMENT_ID   CHECK_IN       CEHCK_OUT 
1    2              2014-18-07     2014-18-09
2    2              2015-01-01     2014-03-02
3    3              2014-08-01     2014-09-01
4    3              2014-09-01     2014-12-09
5    4              2014-18-07     2014-18-09
我想获取ID,
公寓ID
入住
离开
。在同一个日期有不同的ID。 在此表上,查询将产生

APARTMENT_ID => 3
ID => 3, 4 
CHECK_IN CEHCK_OUT => 2014-09-01.
我试过类似的东西

SELECT * FROM `orders` 
WHERE `ID` != `ID` and `CHECK_IN`=`CEHCK_OUT` 
但这不是正确的方法,0结果。
感谢所有能帮助我的人。

您必须使用自联接,否则您只是在比较同一行中的字段:

SELECT *
FROM orders o1
JOIN orders o2 ON o1.id != o2.id AND o1.check_in = o2.check_out

我想您需要在o1.id>o2.id上
来排除对称情况。@PM77-1如果我们在两行中比较相同的其他字段,我会这样做。但是,由于我们将
签入
签出
进行比较,因此没有对称性。您的示例似乎是错误的。结果不应该是公寓吗?你说得对。修好了。