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如果我们在两行中比较相同的其他字段,我会这样做。但是,由于我们将签入
与签出
进行比较,因此没有对称性。您的示例似乎是错误的。结果不应该是公寓吗?你说得对。修好了。