我有2张桌子。一种叫做DocumentStatistics,一种叫做Documents。 DocumentStatistics有一个名为filename的字段,其中包含诸如abcdef之类的文件名。另一方面,文档具有类似的命名方案,但是因为它还保存了旧文件,所以它们已被编号(例如,它可能具有abcdef1和abcdef2)。仅最新的文档将被标记为islive = -1。

我想显示DocumentStatistics中的数据以及Documents表中的正确单元格。
有人能帮我吗?这是我到目前为止所拥有的:

SELECT DocumentStatistics.*,Documents.tmpname
FROM DocumentStatistics
INNER JOIN Documents
ON DocumentStatistics.filename LIKE 'Documents.filename%'
WHERE Documents.islive=-1

最佳答案

可能您可以使用SUBSTRING来完成。像这样:

SELECT DocumentStatistics.*,Documents.tmpname
FROM DocumentStatistics
LEFT JOIN Documents
ON SUBSTRING(DocumentStatistics.filename,start,length)= SUBSTRING(Documents.filename,start,length)
WHERE Documents.islive=-1

关于mysql - SQL INNER JOIN与LIKE和WHERE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27952837/

10-13 02:46