我有3张桌子:
我需要创建一个名为" tags_languages"的新表。并根据问题的语言(多对多关系)填写标签的语言来自"问题"和"标签"表
表格结构:
"问题"表
id text language_id
1 What.. 1
2 How... 1
3 Is... 2
4 Is... 2
5 Where.. 3
"标记"表
id text
1 London
2 England
3 ball
4 love
5 yellow
" questions_tags"表
id question_id tag_id
1 1 1
2 1 2
3 2 1
4 2 2
5 2 3
6 1 3
7 3 2
8 2 4
9 1 4
10 4 3
必填表:
" tags_languages":(tag_id& language_id) - >复合主键
tag_id language_id
1 1
2 1
2 2
3 1
3 2
4 1
感谢,
答案 0 :(得分:1)
这会生成您提到的输出:
SELECT qt.tag_id, q.language_id
FROM questions q
JOIN questions_tags qt ON qt.question_id = q.id;
这是错误的"把它放到一个表中,因为你总是可以在飞行中重建它。 (数据库中的冗余数据是禁止的。)
在SELECT前面粘贴它将创建表:
CREATE TABLE tags_languages (
PRIMARY KEY(tag_id, language_id) )
"许多一对多"和"枢轴"不是同义词。
也许你真正的目标是超越"我需要创造新表"。你愿意讨论吗?