Không, nó không đúng chút nào. Tác giả đang thiết lập cho độc giả của mình sự nhầm lẫn và khuyến khích lập trình sùng bái hàng hóa tránh sự khác biệt về cấu trúc rất mạnh giữa cú pháp tiêu chuẩn và biến thể cũ hơn mà anh ta thích. Cụ thể, một mệnh đề WHERE lộn xộn làm cho việc tìm ra điều gì làm cho truy vấn của anh ta trở nên đặc biệt hơn.
Ví dụ của ông dẫn dắt người đọc tạo ra một bản đồ tinh thần về ý nghĩa của nó có rất nhiều sự lộn xộn.
SELECT pet.id, pet.name, pet.age, pet.dead
FROM pet, person_pet, person
WHERE
pet.id = person_pet.pet_id AND
person_pet.person_id = person.id AND
person.first_name = "Zed";
Một cách thô bạo, ở trên là:
Nhận ID, NAME, AGE và DEAD của thú cưng cho tất cả thú cưng, person_pet và những người mà ID thú cưng xảy ra khớp với pet_id của pet_id và person_id của hồ sơ đó xảy ra khớp với person_id của một người có FIRST_NAME là "Zed"
Với một bản đồ tinh thần như vậy, người đọc (người đang viết SQL bằng tay vì một số lý do) có thể rất dễ mắc lỗi, có thể bằng cách bỏ qua một hoặc nhiều bảng. Và một người đọc mã được viết theo cách như vậy sẽ phải làm việc chăm chỉ hơn, để tìm ra chính xác những gì tác giả SQL đang cố gắng làm. ("Khó hơn" ở mức độ đọc SQL có hoặc không có tô sáng cú pháp, nhưng nó vẫn khác biệt lớn hơn không.)
Có một lý do tại sao THAM GIA là phổ biến, và đó là canard "mối quan tâm" cổ điển cũ. Cụ thể, đối với truy vấn SQL, có lý do chính đáng để phân tách cách dữ liệu được cấu trúc so với cách dữ liệu được lọc.
Nếu truy vấn được viết sạch hơn, chẳng hạn như
SELECT pet.id, pet.name, pet.age
FROM pet
JOIN person_pet ON pet.id = person_pet.pet_id
JOIN person ON person.id = person_pet.person_id
WHERE
person.first_name = "Zed";
Sau đó, người đọc có sự phân biệt rõ ràng hơn giữa các thành phần của những gì được yêu cầu. Bộ lọc đặc biệt của truy vấn này được tách biệt khỏi cách các thành phần của nó liên quan với nhau và các thành phần cần thiết của mỗi mối quan hệ được đặt trực tiếp bên cạnh nơi chúng được yêu cầu.
Tất nhiên, bất kỳ hệ thống cơ sở dữ liệu hiện đại nào cũng không nên thấy sự khác biệt có ý nghĩa giữa hai phong cách. Nhưng nếu hiệu suất cơ sở dữ liệu là sự cân nhắc duy nhất, thì truy vấn SQL cũng sẽ không có khoảng trắng hoặc viết hoa.