我知道连续的id。我需要从表中获取包含与所选行相同的值的其他行。在这个例子中,当我只知道一行的id时,我需要共享相同pos_id和eid的所有行。我可以这样做,但我还需要将select限制为每个schedID只有一个
|--id--+--pos_id--+--eid--+--schedID--+|
|------+----------+-------|----------|
|-212--+----33----+--534--|-54------|
|-255--+----33----+--534--|--54------|
|-258--+----33----+--534--|--54------|
|-267--+----33----+--534--|-55------|
|-278--+----33----+--534--|--55------|
SELECT id FROM table
WHERE pos_id = (SELECT pos_id FROM table WHERE id=212)
AND eid = (SELECT eid FROM table WHERE id=212)
如何将每个唯一的schedID限制为一个?
答案 0 :(得分:0)
试试这个:
SELECT
max(t.id) id, t.schedID
FROM table1 t
INNER JOIN ( SELECT pos_id , eid FROM table1 WHERE id = 212 ) pe
ON t.pos_id = pe.pos_id AND t.eid = pe.eid
GROUP BY t.schedID
使用INNER JOIN
允许通过pos_id和eid仅使用一个子查询来限制记录。按schedid分组可确保该字段的每个值只有一条记录。