我正在寻找下面结构的SQL语句。我想要选择所有表格的uid和文本,这与表格已拒绝有关系:
每个表都包含 uid 和 text 字段。 每个表都有一个mm表来保存任何关系。 local 值属于相关表本身的 uid 。 Foreign代表拒绝的 uid 。
我想用1个SQL查询执行此操作。我认为连接应该是可能的,但我对这些很新。这是一个'lil graphic:
这是我的疑问:
SELECT partsofspeech.uid, partsofspeech.text from declined
LEFT JOIN partsofspeech_mm
ON partsofspeech_mm.foreign = declined.uid
LEFT JOIN partsofspeech
ON partsofspeech_mm.local = partsofspeech.uid
小提琴:
any1是否有线索来处理这种递归?
答案 0 :(得分:0)
这是为您完成的第一个表partsofspeech
SELECT T1.uid,T1.text,T2.local,T2.foreign,T3.uid,T3.text
FROM partsofspeech T1
INNER JOIN partsofspeech_nm T2 ON (T1.uid = T2.local)
INNER JOIN declined T3 ON (T2.foreign = T3.uid)
您可以为其他表格完成剩下的工作,并UNION
将它们放在一起。