> 백엔드 개발 > PHP 튜토리얼 > 帮忙看个SQL问题

帮忙看个SQL问题

WBOY
풀어 주다: 2016-06-23 13:44:53
원래의
777명이 탐색했습니다.

SELECT ornamentation_images.ismark ismark,ornamentation_images.width width,ornamentation_images.height height,users.nickname name,ornamentations.id id,ornamentations.image_name image_name,ornamentations.image_url image_url,ornamentations.add_author add_author,ornamentations.browse_real_cnt browse_real_cnt,ornamentations.comnum comnum,users.head head,users.comnum unreadFROM `ornamentation_images` LEFT JOIN users on ornamentation_images.add_author=users.id LEFT JOIN ornamentations on ornamentation_images.ornamentation_id=ornamentations.id WHERE ( ornamentations.enable = 0 ) AND ( ornamentations.checkstatus = 2 )  ORDER BY ornamentations.id desc LIMIT 0,5
로그인 후 복사

能查出来结果,只是没有查出来users表里的数据,问题出在哪?


回复讨论(解决方案)

表结构在哪呢

可能是left join 的问题
left join是以左表的记录为基础的,ornamentation_images可以看成左表,users可以看成右表,left join是以左表为准的.
换句话说,左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录,右表记录不足的地方均为NULL.

楼主可以查看一下,是否这个原因呢

表结构在哪呢


users表在ornamentation_images上,ornamentations也在ornamentation_images上

可能是left join 的问题
left join是以左表的记录为基础的,ornamentation_images可以看成左表,users可以看成右表,left join是以左表为准的.
换句话说,左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录,右表记录不足的地方均为NULL.

楼主可以查看一下,是否这个原因呢


不是,换了right和inner都不行

可能是left join 的问题
left join是以左表的记录为基础的,ornamentation_images可以看成左表,users可以看成右表,left join是以左表为准的.
换句话说,左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录,右表记录不足的地方均为NULL.

楼主可以查看一下,是否这个原因呢


找到问题了,是where的问题,把where条件去掉就有了。但是必须要带where呀,该怎么写呢?

那应该是表中没有符合这个where条件的记录

那应该是表中没有符合这个where条件的记录


恩,的确是数据库问题,sql没问题,结贴

一个可能是你关联user表错误另一个就是在你当前where条件下user表里面没有数据满足

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿