如果联接表中的一行不存在,则无任何回显(MySQL)
混淆标题,对吗?让我解释一下:代码如下:如果联接表中的一行不存在,则无任何回显(MySQL),mysql,phpmyadmin,Mysql,Phpmyadmin,混淆标题,对吗?让我解释一下:代码如下: SELECT tmdb_movies.movie_title ,GROUP_CONCAT(DISTINCT videos.videos_name) as videos_name FROM tmdb_movies JOIN videos ON videos.videos_tmdb_id=tmdb_movies.tmdb_id Where tmdb_movies.tmdb_id='31' GROUP BY tmdb_movies.movie_title
SELECT tmdb_movies.movie_title
,GROUP_CONCAT(DISTINCT videos.videos_name) as videos_name
FROM tmdb_movies
JOIN videos ON videos.videos_tmdb_id=tmdb_movies.tmdb_id
Where tmdb_movies.tmdb_id='31'
GROUP BY tmdb_movies.movie_title
现在这段代码什么也不回显。因为Where-tmdb\u movies.tmdb\u id='31'
不存在于videos
表中。但至少tmdb.movies.movie\u title
应该会产生共鸣
如果一个连接行中不存在行,如何使其他内容相互呼应
如果您不理解这个问题,让我解释一下我的表格结构:
在这段代码中,有两个表名为:tmdb\u movies
和videos
。我使用一对多关系。使用tmdb\u id
这就是我的tmdb\u电影
表的外观:
tmdb_id movie_title
1 Ironman
2 Logan
3 Boy
4 Superman
这就是我的视频
表格的样子:
videos_tmdb_id videos_name
1 Ironman Trailer
2 Logan Trailer #1
2 Logan Trailer #2
3 Boy Trailer #1
3 Boy teaser
4 Superman Trailer #1
4 Superman Teaser
我通过一个外键将它们连接起来,如下所示:
如果你需要更多信息,请告诉我 将
JOIN
更改为LEFT JOIN
类似:
SELECT tmdb_movies.movie_title
,GROUP_CONCAT(DISTINCT videos.videos_name) as videos_name
FROM tmdb_movies
LEFT JOIN videos ON videos.videos_tmdb_id=tmdb_movies.tmdb_id
Where tmdb_movies.tmdb_id='31'
GROUP BY tmdb_movies.movie_title
然后再试一次
有效,这很容易,默认连接是什么?自联接?它的
内部联接
,自联接
是一个可以通过两个别名联接一个单表的联接;引用:“在某些数据库中,左连接称为左-外连接。”不,它是左-外连接
,但关键字外连接
是可选的,可以使用(就像内连接
中的内连接
是可选的一样)。@Thorstenketner感谢您的更新。你们就像我们的知识库。