我有这个查询:

SELECT hit.timestamp,hit.id,config.Name,hit.meter_id,levels.LevelName, pos.sm_pos , hit.hit_value
FROM pos,hit,controllers,levels,config
WHERE hit.id=config.id
AND hit.meter_id=levels.id
AND pos.id=hit.id
AND pos.controller_id=controllers.id;


如何从中进行内部联接查询?有别名或其他东西吗?我一直在寻找,但找不到用于多表查询的任何内容。

最佳答案

现在,您联接表的方式已经过时了。它曾经使用得更早,现在我们根据需要使用INNER/NATURAL/LEFT OUTER/RIGHT OUTER/CROSS等关键字来联接表。

Refer Join in Mysql

SELECT hit.timestamp,
       hit.id,
       config.Name,
       hit.meter_id,
       levels.LevelName,
       pos.sm_pos,
       hit.hit_value
FROM   hit
       INNER JOIN config
               ON hit.id = config.id
       INNER JOIN levels
               ON hit.meter_id = levels.id
       INNER JOIN POS
               ON pos.id = hit.id
       INNER JOIN controllers
               ON pos.controller_id = controllers.id;


注意:您发布的查询是根据SQL-89标准,而我发布的第二个查询是根据SQL-92。
SQL-92标准引入了INNER JOIN .. ONOUTER JOIN .. ON,以替换SQL-89的更复杂的(?)语法。

10-07 12:39
查看更多