从sql查询到mysql等价物

时间:2013-05-21 11:17:20

标签: mysql sql

请,我有这个查询在sql

select sum(lhd.sasih)-sum(lhd.sasid) as sasi,lhd.kartllg as kartllg
from e2013..levizjehd lhd,supersick_db..produkt as prod
where  lhd.kartllg=prod.kodfinance
group by lhd.kartllg

我需要写它的等价但是在mysql中...... 我收到这个错误:

Invalid object name 'e2013..levizjehd'.

我需要的是在mysql查询中翻译它,但我不知道...在sql中代表什么。 我很感激你的帮助。

我如何连接

$host="192.168.10.250\\f501";
$uid="sa";
$passVal="";
$database="SUPERSICK_DB";
$objConnect = odbc_connect("Driver={SQL Server};Server=$host;Database=$database;",$uid, $passVal ) or die("Connection could not established");

谢谢!

2 个答案:

答案 0 :(得分:1)

好像是在引用数据库名称。所以像'e2013'是一个DB而'supersick_db'是另一个。第一个包含'levizjeh'表,另一个包含'produkt'表。

如果你在同一个mysql中有两个表,那么你可以跳过这个名字和..一起。

SELECT SUM(lhd.sasih)-SUM(lhd.sasid) AS sasi, lhd.kartllg AS kartllg
FROM levizjehd lhd, produkt prod
WHERE lhd.kartllg = prod.kodfinance
GROUP BY lhd.kartllg

您可以像这样改进查询:

SELECT SUM(lhd.sasih)-SUM(lhd.sasid) AS sasi, lhd.kartllg AS kartllg
FROM levizjehd lhd
INNER JOIN produkt prod ON lhd.kartllg = prod.kodfinance
GROUP BY lhd.kartllg

答案 1 :(得分:1)

我认为Angelo已经涵盖了这个问题,但请注意以下内容并不等同:

SUM(lhd.sasih) - SUM(lhd.sasid)
SUM(lhd.sasih - ldh.sasid)

如果任一列可以为空,这些表达式可能会返回不同的结果:aggregates ignore nulls。例如。如果第一行是{10,null}而第二行是{100,50},第一行返回10 + 10 - 50;第二个100 - 50。