mysql选择多个并加入查询

时间:2011-06-14 09:45:33

标签: mysql sql select join

我这里有一个复杂的MYSQL查询问题。我尽力解释我的问题。

我有4张桌子。 mid是表之间的外键。 table4不是必须的表源。但是我喜欢它返回所有行,即使table4没有匹配数据。所以我写了一个查询脚本如下。

我不确定是否是编写此类查询脚本的逻辑方式,但我知道语法错误。

SELECT * 
FROM table1, table2, table3, 
    (SELECT xx 
    FROM table4 
    RIGHT JOIN table1 ON table1.mid = table4.mid) 
WHERE table1.mid = table2.mid 
AND table1.mid = table3.mid 
AND tt = 'a' 
AND type = 1 
GROUP BY table1.mid 
ORDER BY xx DESC, table1.name ASC;

1 个答案:

答案 0 :(得分:0)

你必须在table1和amp;之间进行左连接。表4:

SELECT * 
  FROM table1
  JOIN table2 ON table1.mid = table2.mid 
  JOIN table3 ON table1.mid = table3.mid 
  LEFT JOIN table4 ON table1.mid = table4.mid 
 WHERE tt = 'a' 
   AND type = 1 
 GROUP BY table1.mid 
 ORDER BY xx DESC, table1.name ASC;