0

MYSQL

选择整行并连接其他几行中的一些字段

我有一张像

|-----------------------|
|key1|key2|key3|key4|id-|
|1---|2---|3---|4---|1---|
|43--|35--|566-|52--|1--|
|45--|25--|6---|245-|2--|
|45--|25--|608-|24--|2--|
|-----------------------|

key4是用于开始选择的索引键。

我必须得到整行(第一行)和key3所有其他行的值相同id(1)。

所以我想像第一行的结果1, 2, 3, 4, 1, 566

对于第二行,就像43, 35, 566, 52, 1, 3

有什么办法可以做到这一点,或者我真的必须进行另一个查询?

4

1 回答 1

0

将表加入到自身id

select t1.*, group_concat(t2.key3) other_key3
from mytable t1
join mytable t2 on t2.id = t1.id
  and t1.key3 != t2.key3
group by 1,2,3,4,5

请参阅在您的数据上运行的此查询的SQLFiddle

需要 key3 不同的额外条件来阻止行加入自身。请注意,这通常是行标识符的比较,但您的表似乎没有。

于 2013-10-19T01:41:03.563 回答