假设我有一个ID列的表。MySQL查询帮助?
我想做一个MySQL查询查看表中的所有数据,看它是否满足两个条件之一。如果它符合第一个条件(称为X),那么当下一个条件满足(Y)时,我想要找到ID而没有任何重叠。所以基本上一个模式将合并X然后是Y.
没有重叠意味着例如如果条件X被满足的ID是6并且条件Y被满足的ID是12.我不想要下一个X条件即使存在X条件,也要在6和12之间。
我很困惑如何设置这样的查询。我想我可以使用同一个表的连接,然后有一个where子句来调节第二个id比第一个更大,但这是行不通的。
这本来查询我
SELECT x.id AS 'x_id', x.data AS 'x_data', y.id AS 'y_id', y.data AS 'y_data'
FROM Table1 AS x, Table1 AS y
WHERE y.id > x.id AND y.id-x.id >= 5
AND Y Conditions AND X Conditions
ID1,其中x是满足,ID 2,其中y遭到了其中的数据是0和1之间。如果条件X(例如X <一些随机数。 5满足,然后我想要ID),那么我需要满足条件Y的以下ID(例如Y> .6)。所以基本上输出是基于两个条件的来自同一个表的两个不同ID。
我想要的图案出现在那里它在X和Y之间的ID去X则Y,则X则Y没有重叠
6, Data, 15, Data 6, Data, 21, Data 6, Data 23, Data 6, Data , 27, Data 9, Data, 15, Data 9, Data, 21, Data
理想的情况下,这是我想 id-x data id-y data
非常感谢帮助。
我也尝试过使用DISINCT作为其中一个ID,但是出现了相同的结果 – evanvee 2011-03-29 20:17:48
@evanvee:建议编辑你的问题,使其清楚地表明你的结果集。如果您包含之前和之后的样本数据,这将有助于说清楚。 – 2011-03-29 21:15:09
@ p.campbell我试图让它更清晰。现在有道理吗? – evanvee 2011-03-29 21:22:16