【发布时间】:2011-03-09 11:59:52
【问题描述】:
我发现用不同的方式编写查询,如下所示 I 型
SELECT JS.JobseekerID
, JS.FirstName
, JS.LastName
, JS.Currency
, JS.AccountRegDate
, JS.LastUpdated
, JS.NoticePeriod
, JS.Availability
, C.CountryName
, S.SalaryAmount
, DD.DisciplineName
, DT.DegreeLevel
FROM Jobseekers JS
INNER
JOIN Countries C
ON JS.CountryID = C.CountryID
INNER
JOIN SalaryBracket S
ON JS.MinSalaryID = S.SalaryID
INNER
JOIN DegreeDisciplines DD
ON JS.DegreeDisciplineID = DD.DisciplineID
INNER
JOIN DegreeType DT
ON JS.DegreeTypeID = DT.DegreeTypeID
WHERE
JS.ShowCV = 'Yes'
II 型
SELECT JS.JobseekerID
, JS.FirstName
, JS.LastName
, JS.Currency
, JS.AccountRegDate
, JS.LastUpdated
, JS.NoticePeriod
, JS.Availability
, C.CountryName
, S.SalaryAmount
, DD.DisciplineName
, DT.DegreeLevel
FROM Jobseekers JS, Countries C, SalaryBracket S, DegreeDisciplines DD
, DegreeType DT
WHERE
JS.CountryID = C.CountryID
AND JS.MinSalaryID = S.SalaryID
AND JS.DegreeDisciplineID = DD.DisciplineID
AND JS.DegreeTypeID = DT.DegreeTypeID
AND JS.ShowCV = 'Yes'
我正在使用Mysql数据库
两者都很好,但我想知道
- 在任何情况下始终使用哪种最佳做法?
- 在性能方面哪个更好?(将数据库称为数百万条记录)
- 两者相比有什么优势?
- 有什么工具可以让我检查哪个查询更好?
提前致谢
【问题讨论】:
-
edit: Scorpi0 提到的很好,一定要看看他的 SO-links
-
nop,DBMS 检测到内部连接,它不执行交叉连接
-
嗯,我想我在 MySQL 论坛的某个地方读过它,但你可能是对的。也许我能找到这篇文章,谢谢你的指出!
标签: mysql database database-design inner-join