以下2个SQL脚本的结果集看起来相同.但应该有一些区别.那是什么?
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
Run Code Online (Sandbox Code Playgroud)
性能有何不同?
我刚刚比较了SQL Server 2008 R2上的实际查询计划.它们完全相同.所以没有性能差异.内部联接用于两种情况.
可能重复:
INNER JOIN与WHERE子句 - 有什么区别吗?
SQL JOIN:USING,ON或WHERE有区别吗?
例如,我有这样的SQL声明:
SELECT *
FROM orders, inventory
WHERE orders.product = inventory.product
Run Code Online (Sandbox Code Playgroud)
要么
SELECT *
FROM orders
JOIN inventory
ON orders.product = inventory.product
Run Code Online (Sandbox Code Playgroud)
这两者有什么区别?
这是我的查询:
这看起来效率高吗?使用JOIN有优势吗?或者这是一样的吗?
$query_Recordset2 =
"SELECT cute_news.category, cute_news.id, cute_story.short, cute_story.post_id, cute_news.date, cute_news.url, cute_news.title
FROM cute_news, cute_story
WHERE cute_news.id = cute_story.post_id AND category LIKE '10%'
ORDER BY date DESC LIMIT 0,35";
Run Code Online (Sandbox Code Playgroud) 有人可以告诉我哪种方式更好,它们都能产生相同的结果,但哪种更"正确"?
我个人认为第一个查询更容易阅读,但我似乎在其他地方读到应该总是使用别名.
谢谢
SELECT Patient.PatientSurname, Doctor.DoctorSurname
FROM Patient
JOIN Operation
ON Operation.PatientCode=Patient.PatientCode
JOIN Doctor
ON Doctor.DoctorCode=Operation.DoctorCode
WHERE Operation.OperationType='Broken Arm'
GROUP BY Patient.PatientSurname
HAVING count(Patient.PatientSurname) > 0
SELECT PatientSurname, DoctorSurname
FROM Patient as p, Operation as o, Doctor as d
WHERE o.PatientCode=p.PatientCode
AND d.DoctorCode=o.DoctorCode
AND o.OperationType='Broken Arm'
GROUP BY p.PatientSurname
HAVING count(p.PatientSurname) > 0
Run Code Online (Sandbox Code Playgroud)