No, non è affatto vero. L'autore sta preparando i suoi lettori per la confusione e incoraggiando la programmazione settoriale del carico che evita una differenza strutturale molto potente tra la sintassi standard e questa variante più vecchia che preferisce. In particolare, una clausola WHERE disordinata rende più difficile capire cosa rende speciale la sua query.
Il suo esempio porta un lettore a generare una mappa mentale del suo significato che ha un sacco di confusione.
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";
Approssimativamente, quanto sopra è:
Get the pet's ID, NAME, AGE, and DEAD for all pets, person_pet, and persons where the pet ID happens to match a person_pet's pet_id, and the person_id of that record happens to match the person_id of a person whose FIRST_NAME is "Zed"
Con una mappa mentale del genere, il lettore (che sta scrivendo SQL a mano per qualche motivo) può facilmente commettere un errore, eventualmente omettendo uno o più tavoli. E un lettore di codice scritto in questo modo dovrà lavorare di più, per capire esattamente cosa l'autore di SQL sta cercando di fare. ("Più difficile" è sul livello di lettura di SQL con o senza evidenziazione della sintassi, ma è ancora una differenza maggiore di zero.)
C'è una ragione per cui le JOIN sono comuni, ed è il classico classico "seperazione delle preoccupazioni" canard. In particolare, per una query SQL ci sono buone ragioni per separare il modo in cui i dati sono strutturati rispetto a come vengono filtrati i dati.
Se la query è scritta più pulita, come
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";
Quindi il lettore ha una chiara distinzione tra le componenti di ciò che viene richiesto. Il filtro distintivo di questa query è separato dal modo in cui i componenti si correlano tra loro e i componenti necessari di ogni relazione sono direttamente accanto a dove sono richiesti.
Naturalmente, qualsiasi sistema di database moderno non dovrebbe vedere una differenza significativa tra i due stili. Ma se la prestazione del database fosse l'unica considerazione, la query SQL non avrebbe spazio bianco o maiuscole,