【发布时间】:2012-05-28 15:22:30
【问题描述】:
我有一个类似于以下内容的 SQL 语句:
SELECT * FROM table1 AS bl
INNER JOIN table2 AS vbsa ON bl.id=vbsa.businesslisting_id AND vbsa.section_id ='70'
INNER JOIN table3 AS vbla ON bl.id=vbla.businesslisting_id AND vbla.location_id='1'
WHERE bl.published = '1'
ORDER BY bl.listing_type DESC
由于某种原因,这不会返回任何行,但是如果我删除 ORDER BY 子句,它确实会返回行。任何想法为什么会这样?
列listing_type 确实存在于数据库中并包含数值。它设置为 varchar 类型。我想这可能是问题所在,但我尝试了不同的列 (ID),但它仍然不起作用。
谢谢 罗伯特
【问题讨论】:
-
ORDER BY不应该过滤结果,因此除非 mysql 中存在错误(极不可能),否则无论ORDER BY如何,行数都必须相同。我建议如果您使用任何 gui 工具来运行查询,请确保它不会过滤任何内容。 -
不试图过滤结果只是对它们进行排序。我同意,但如果我删除该条款,它确实有效。我也试过 table1.listing_type ,没区别。
-
那是对我问题的回应!?
-
不,这是一个合适的评论。
标签: mysql sql-order-by inner-join