我有一张像这样的桌子..
[id][Col1][Col2][id_duplicated]
10 abc1 defg NULL
12 text text NULL
50 abc2 text NULL
90 NULL NULL 10
500 NULL NULL 10
620 NULL NULL 50
700 text text NULL
Id_duplicated是一个值,表示这是同一个表中'id'行的副本..如果我选择id 620将显示来自id 50的所有值
问题:
select id,col1 from table where col1 is like '%abc%'
只会显示行 id = 10 和 id = 50 ,但我还需要显示是否有这些ID的副本
我想我需要一个子查询,首先查找是否有'%abc%',然后是第二个查询是否有id_duplicated上的任何副本等于10和50等等....
总而言之,我需要一个显示此结果的查询
[id][Col1][Col2][id_duplicated]
10 abc1 defg NULL
50 abc2 text NULL
90 NULL NULL 10
500 NULL NULL 10
620 NULL NULL 50
对不起我的英文
答案 0 :(得分:2)
如果你想要额外的行,你可以使用union和select在id_duplicated中查找结果的id:
http://sqlfiddle.com/#!9/ad817/8
select id,col1, col2, id_duplicated
from table
where col1 like '%abc%'
UNION
select id, col1, col2, id_duplicated
FROM table
WHERE id_duplicated IN (select id from table where col1 like '%abc%')