我的SQL查询通过mm连接多个表

时间:2013-12-22 00:24:07

标签: php mysql sql

我正在寻找下面结构的SQL语句。我想要选择所有表格的uid和文本,这与表格已拒绝有关系:

  • partsofspeech
  • verbs_tempus
  • words_case
  • words_language
  • words_relation

每个表都包含 uid text 字段。 每个表都有一个mm表来保存任何关系。 local 值属于相关表本身的 uid 。 Foreign代表拒绝的 uid

我想用1个SQL查询执行此操作。我认为连接应该是可能的,但我对这些很新。这是一个'lil graphic:enter image description here

这是我的疑问:

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

小提琴:

sql fiddle

any1是否有线索来处理这种递归?

1 个答案:

答案 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将它们放在一起。