我有一个类似于:
的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确实存在于DB中并包含数字值。它被设置为varchar类型。我想也许这就是问题,但我尝试了一个不同的列(ID),它仍然没有用。
由于 罗伯特
答案 0 :(得分:0)
试试这个
SELECT * FROM table1 AS bl
INNER JOIN table2 AS vbsa ON bl.id = vbsa.businesslisting_id
INNER JOIN table3 AS vbla ON bl.id = vbla.businesslisting_id
WHERE bl.published = 1 AND vbsa.section_id = 70 AND vbla.location_id = 1
ORDER BY bl.listing_type DESC
还要确保在调试SQL时查看错误消息,尝试修复而不会发现这些错误很难
答案 1 :(得分:0)
发现问题。我一直在研究别人的代码,他们没有为有问题的表添加索引。
因此,当我添加sort by属性并运行查询时,它超出了MAX_JOIN_SIZE行。
我添加了索引,现在它完美无缺。
感谢每个人的投入。