Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中的连接条件需要忽略空字段_Mysql_Sql_Join - Fatal编程技术网

mysql中的连接条件需要忽略空字段

mysql中的连接条件需要忽略空字段,mysql,sql,join,Mysql,Sql,Join,我有两张桌子:post,post\u image 我目前正试图像这样加入他们: $sql = 'SELECT post.*, post_image.name AS img FROM post, post_image WHERE post_image.postId=post.id LIMIT 10'; 这是我的问题。有些帖子在post_图像中没有任何条目,但我仍然需要返回它们。我知道mysql可以检查null,但我不确定如果这是解决方案,它会出现在我的语句中。我也不完全确定我能用我正在使用的速

我有两张桌子:post,post\u image

我目前正试图像这样加入他们:

$sql = 'SELECT post.*, post_image.name AS img FROM post, post_image 
WHERE post_image.postId=post.id LIMIT 10';
这是我的问题。有些帖子在post_图像中没有任何条目,但我仍然需要返回它们。我知道mysql可以检查null,但我不确定如果这是解决方案,它会出现在我的语句中。我也不完全确定我能用我正在使用的速记连接做到这一点

请帮忙:)

编辑:

现在,这就像预期的那样工作,但是我还需要确保它只提取字段ordinal=0的post_图像,因为可以有多个post_图像条目。我尝试添加一个WHERE子句,但它似乎只提供带有图像的帖子

SELECT post.*, post_image.name AS img FROM post LEFT JOIN post_image ON post_image.postId=post.id WHERE post_image.ordinal=0 LIMIT 10

像这样使用
LEFT JOIN

SELECT 
  post.*, 
  post_image.name AS img 
FROM post
LEFT JOIN post_image ON post_image.postId = post.id 
LIMIT 10;
您的查询是
internaljoin
,这两个表使用旧的连接语法,该语法使用
WHERE
子句指定连接条件。最好在以后的查询中使用显式的
JOIN
语法,而不是使用
internaljoin
条件

有关更多信息:


像这样使用
左连接

SELECT 
  post.*, 
  post_image.name AS img 
FROM post
LEFT JOIN post_image ON post_image.postId = post.id 
LIMIT 10;
您的查询是
internaljoin
,这两个表使用旧的连接语法,该语法使用
WHERE
子句指定连接条件。最好在以后的查询中使用显式的
JOIN
语法,而不是使用
internaljoin
条件

有关更多信息:


    • 使用
      左连接如何?我认为它会显示帖子,虽然它没有图片

      SELECT * FROM post p LEFT JOIN post_image pi ON p.id = pi.postId
      

      使用左连接怎么样?我认为它会显示帖子,虽然它没有图片

      SELECT * FROM post p LEFT JOIN post_image pi ON p.id = pi.postId
      

      很抱歉进行编辑,我通过向联接中添加AND而不是WHERE解决了该部分。很抱歉进行编辑,我通过向联接中添加AND而不是WHERE解决了该部分WHERE@Helto-将此条件移动到
      ON
      子句,不在
      中,其中
      如下:
      。。。在post_image.postId=post.id和post_image.ordinal=0 LIMIT 10
      @Helto-将此条件移动到
      中不在
      子句中,如下所示:
      。。。ON post_image.postId=post.id和post_image.ordinal=0限制10