2 mysql 次查询

2 mysql queries at once

我有一个像这样的table..

[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 是一个值,它标记是同一个 table 行 'id' 的副本。如果我 select id 620 将显示所有值来自 id 50

问题:

select id,col1 from table where col1 is like '%abc%'

只会显示 id=10id=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 

对不起我的英语

如果你想要额外的行,你可以使用 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%')