Mysql 将左联接连接到多个列?

Mysql Concatenate Left Join to more than one Column?

我有一个 MySQL Select 语句,它在左连接中连接标签。

LEFT JOIN tags t on t.tagid = et.tagid1 

但我需要将标签加入其他三列。

我试过了;

  LEFT JOIN tags t on t.tagid = et.tagid1, et.tagid2, et.tagid3 

但是我得到一个错误。

有办法吗?这是完整的 select 声明;

SELECT ap.userid,     
        (
            SELECT GROUP_CONCAT(t.tagname)
            FROM entitytag et
            LEFT JOIN tags t on t.tagid = et.tagid1     
            WHERE et.audioid = ap.audioid
        ) tagname,
            FROM audioposts ap 
            LEFT JOIN accounts ac ON ac.id = ap.userid
          WHERE ap.opid = '0'       
            

on 子句必须有一个表达式来确定是否应该连接给定的一对行;这里你想加入 t 行,这些行的 tagid 是 tagid1、tagid2 或 tagid3 之一,所以你需要(在 ON 之后):

t.tagid = et.tagid1 or t.tagid = et.tagid2 or t.tagid = et.tagid3

或使用 IN 运算符的等效项:

t.tagId in (et.tagid1, et.tagid2, et.tagid3)