在查询中混合使用 ANSI 1992 JOIN 和 COMMA

2021-11-20 00:00:00 join sql mysql inner-join

我正在尝试使用以下 MySQL 查询来获取一些数据:

i'm trying the following MySQL query to fetch some data:

SELECT m.*, t.*
FROM memebers as m, telephone as t
INNER JOIN memeberFunctions as mf ON m.id = mf.memeber
INNER JOIN mitgliedTelephone as mt ON m.id = mt.memeber
WHERE mf.function = 32

但我总是收到以下错误:

But i always get the following error:

#1054 - Unknown column 'm.id' in 'on clause'

该列确实存在并且查询仅在一张表上工作正常(例如,当我移除电话时)

The column does exists and the query works fine with only one table (e.g. when i remove telephone)

有人知道我做错了什么吗?

Does anybody know what I do wrong?

推荐答案

看来你的要求是加入 members 表,但你加入的是 telephone 表.只需更改他们的顺序.

It seems your requirement is to join members table but you are joining with telephone table. just change their order.

SELECT 
    `m`.*,
    `t`.* 
FROM
    `memebers` AS `m` 
    JOIN `telephone` AS `t` 
    JOIN `memeberFunctions` AS `mf` 
        ON `m`.`id` = `mf`.`memeber` 
        AND `mf`.`function` = 32 
    JOIN `mitgliedTelephone` AS `mt` 
        ON `m`.`id` = `mt`.`memeber`;

希望对你有帮助.谢谢!!

Hope this helps you. Thank you!!

相关文章