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表裡面沒有資料滿足