I'll just come out and say it, modern SQL amazing and powerful but it is not a good language. The language spec shows a weird obsession with "natural language" style programming, sometimes at the cost of safety, consistency and expressiveness. It is not a good language to generate by code, nor to use directly on the command line. It is not a good language to efficiently access your stored data, nor to express relational algebra. But you're going to have to learn it, and modern databases do amazing things with it to make it work.
Then it would be FROM X join Y on .. join Z on .. join (..) as T SELECT X.A, Y.B WHERE ..
I guess it's jarring but that's due to me not being used to it. Some people prefer doing joins using there where clause in which case the FROM ends up being in closer to location to the WHERE.
In fact I would put the select after the where clause:
from t
where x = 'y'
select a, b, c
order by a, b, c select b, max(a) as ma
from t
group by b
where ma > 100
ERROR: column "ma" does not exist
You would have to use the having clause: select b
from t
group by b
having max(a) > 100