Mysql Transact-SQL尝试使用内部联接和“Like”约束避免重复
这样显示类似的内容,它复制结果 如果删除这部分代码,它就可以正常工作Mysql Transact-SQL尝试使用内部联接和“Like”约束避免重复,mysql,Mysql,这样显示类似的内容,它复制结果 如果删除这部分代码,它就可以正常工作 SELECT numSerie, nomVehicule,model,AnneeModel FROM Vehicule,Marque where Vehicule.idMarque = Marque.idMarque and Vehicule.numSerie LIKE "%" OR Marque.nomVehicule LIKE "%" 您的WHERE子句需要做一些工作。看看布尔逻辑。如果不将条件括在括号中,
SELECT numSerie, nomVehicule,model,AnneeModel
FROM Vehicule,Marque where Vehicule.idMarque = Marque.idMarque and Vehicule.numSerie
LIKE "%" OR Marque.nomVehicule LIKE "%"
您的WHERE子句需要做一些工作。看看布尔逻辑。如果不将条件括在括号中,它将从左到右计算布尔运算符 切换到ANSI-92 SQL表示法将立即解决问题。ANSI-92表示法已经有25年的历史了,虽然数据库引擎仍然可以使用较旧的联接表示法运行查询,但使用ANSI-92联接表示法可以完全避免这个问题
OR Marque.nomVehicule LIKE "%"
或者更好,用ANSI-92表示法:
FROM Vehicule,Marque
WHERE (Vehicule.idMarque = Marque.idMarque)
AND ((Vehicule.numSerie LIKE "%") OR (Marque.nomVehicule LIKE "%"))
那么为什么不删除这一部分呢?这对于我的应用程序来说是必要的。标题说关于Transact-SQL的问题,但它被MySQL标记了。。。问题是什么?尝试避免重复要避免重复,只需使用DISTINCDISTINCTROW关键字或GROUP BY子句。
FROM Vehicule
JOIN Marque ON (Vehicule.idMarque = Marque.idMarque)
WHERE Vehicule.numSerie LIKE "%" OR Marque.nomVehicule LIKE "%"