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

时间:2023-04-29
本文介绍了在查询中混合使用 ANSI 1992 JOIN 和 COMMA的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在尝试使用以下 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!!

这篇关于在查询中混合使用 ANSI 1992 JOIN 和 COMMA的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

上一篇:创建表时出错:您的 SQL 语法在第 1 行的“order( order_id INT UNSIGNED NOT NUL 下一篇:如何使用选项从命令行导出和导入 .sql 文件?

相关文章