mysql - 连接 MySQL 上的多个表

标签 mysql

我有三个表(A、B、C),A 有一个与 B 共享的 key ,B 有一个与 C 共享的 key 。我必须合并这三个表才能从 A 中获取与列相关的信息在 C 中。我的代码是:

SELECT
    a.x_code, a.item_id, c.action_type, c.item_name
FROM
    A a
        RIGHT OUTER JOIN
    B b ON b.item_id = a.item_id
        LEFT OUTER JOIN
    C c ON c.item_name = b.item_name

我在 MySQL 上运行它,查询没有生成任何结果并超时。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

不确定为什么需要外连接。试试这个。

SELECT
    a.x_code, b.item_id, c.action_type, b.item_name
FROM
    B b
       JOIN
    A a ON b.item_id = a.item_id
        JOIN
    C c ON c.item_name = b.item_name

请注意,我更改了表顺序并将连接表放在第一位。

如果您坚持使用外部联接,请将联接更改为 LEFT OUTER JOIN - 两者,并在查询末尾添加 WHERE a.x_code IS NOT NULL AND c.action_type IS NOT NULL。

关于mysql - 连接 MySQL 上的多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35026994/

相关文章:

PHP Mysql 导出为pdf

mysql - 基于列字符串长度比较的查询分组结果计数

mysql - where 子句中的 case

mysql - MySql查询错误

html - 从 Laravel 4 的表中隐藏特定用户的最佳方法是什么?

python - Django 1.8.8 迁移首先什么也没说,然后不会应用更改

mysql - 更新表中字段值多次出现的行

在数据库中添加值的 PHP 查询失败

php - 输出一个字段,根据 true 或 false 输出下一个字段

php - 在 php 中查询分层的 mysql 表