繁体   English   中英

在MYSQL QUERY中转换MS SQL Server查询

[英]Convert MS SQL Server Query in MYSQL QUERY

我写了一个查询

SELECT dbo.boat.boatno, dbo.boat.boattype, dbo.staff.staffFirstName, dbo.staff.staffLastName,    
dbo.branch.branchAddress
FROM dbo.boat INNER JOIN
dbo.BoatOwner ON dbo.boat.OwnerNo = dbo.BoatOwner.OwnerNo INNER JOIN
dbo.branch ON dbo.boat.BranchNo = dbo.branch.branchno INNER JOIN
dbo.staff ON dbo.branch.branchno = dbo.staff.Branchno
WHERE (dbo.branch.branchAddress LIKE '%LONDON%')

但这在MYSQL QUERY中不起作用

如何将其转换为MYSQL QUERY?

您需要知道MySQL的正确表名。 假设结构类似,我可以尝试:

SELECT b.boatno, b.boattype, s.staffFirstName, s.staffLastName, br.branchAddress
FROM boat b INNER JOIN
     BoatOwner bo
     ON b.OwnerNo = bo.OwnerNo INNER JOIN
     branch br
     ON b.BranchNo = br.branchno INNER JOIN
     staff s
     ON br.branchno = s.Branchno
WHERE br.branchAddress LIKE '%LONDON%';

MySQL不使用SQL Server的三部分命名。 名称中间没有“ schema”。 列名称中的其他句点可能是造成混乱的原因之一。 使用表别名应该在两个数据库中都可以使用,并使代码更具可读性。

只是一般原则的猜测,但也许更简单

SELECT A.boatno, A.boattype, D.staffFirstName, D.staffLastName, C.branchAddress
FROM dbo.boat A, dbo.BoatOwner B, dbo.branch C, dbo.staff D
WHERE B.OwnerNo = A.OwnerNo AND C.branchno = A.BranchNo AND D.Branchno = C.branchno
AND C.branchAddress LIKE '%LONDON%'

可能有效。

首先,确保还可以SELECTdbo.boatdbo.BoatOwnerdbo.branchdbo.staff使用phpMyAdmin的环境。 有时候简单的事情会使我们失望...

SELECT b.boatno, b.boattype, s.staffFirstName, s.staffLastName, br.branchAddress
FROM boat b INNER JOIN
 BoatOwner bo
 ON b.OwnerNo = bo.OwnerNo INNER JOIN
 branch br
 ON b.BranchNo = br.branchno INNER JOIN
 staff s
 ON br.branchno = s.Branchno
WHERE br.branchAddress LIKE '%LONDON%';
GROUP BY b.boatno

这样还不够吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM