MYSQL LEFT JOIN多个表两次 [英] MYSQL LEFT JOIN Multiple Tables Twice

查看:1697
本文介绍了MYSQL LEFT JOIN多个表两次的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下MySQL代码:

I have following MySQL Code:

SELECT * 
FROM b_movies, b_mov_rol_celeb, b_starcast 
LEFT JOIN bb_celebs ON b_mov_rol_celeb.celeb_id = bb_celebs.celeb_id 
  OR b_starcast.celeb_id = bb_celebs.celeb_id 
LEFT JOIN bb_roles ON b_mov_rol_celeb.role_id = bb_roles.role_id 
WHERE b_movies.id = '14';

出现错误:

"on子句"中的未知列"b_mov_rol_celeb.celeb_id"

Unknown column 'b_mov_rol_celeb.celeb_id' in 'on clause'

推荐答案

尝试一下:

SELECT m.title_slug, m.title, m.release_date,
       c.celeb_slug, c.celeb_name, 
       r.role_name,
       s.char_name
FROM b_movies m
INNER JOIN b_starcast s ON m.id = s.movie_id
INNER JOIN b_mov_rol_celeb mrc ON m.id = mrc.movie_id
LEFT JOIN bb_celebs c ON mrc.celeb_id = c.celeb_id OR s.celeb_id = c.celeb_id 
LEFT JOIN bb_roles r ON mrc.role_id = r.role_id 
WHERE m.id = '14';

表的顺序在左联接或右联接中很重要.

The order of the tables matters in a left or right join.

这篇关于MYSQL LEFT JOIN多个表两次的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆