我有3个表,“问题”,“q_t” - >数据透视表和“标签”:
我需要在q_t.tid中第一次出现时填充tags.lid为= questions.lid
“问题”表格结构:
qid lid
1 901
2 901
3 500
4 500
5 200
6 210
7 333
8 423
“q_t”表格结构:
qid tid
1 8
2 4
3 8
4 1
1 2
6 3
2 8
8 1
“tags”表格结构:
tid lid
1 null
2 null
3 null
4 null
5 null
6 null
7 null
8 null
我需要“标签”表格为:
tid lid
1 500
2 901
3 210
4 901
5 null
6 null
7 null
8 901
感谢,
答案 0 :(得分:1)
我会选择这样的查询:
UPDATE tags t
SET t.lid = (
SELECT q.lid
FROM questions q
JOIN q_t ON (q.qid = q_t.qid)
WHERE q_t.tid = t.tid
LIMIT 1
)
它可能不是最好的表现,但对于一次性工作,应该这样做。
作为替代方案:
UPDATE tags t
JOIN (
SELECT q.lid, q_t.tid
FROM questions q
JOIN q_t USING (qid)
GROUP BY q_t.tid
) d USING(tid)
SET t.lid = d.lid