Re: SQL Joins
От | Tom Lane |
---|---|
Тема | Re: SQL Joins |
Дата | |
Msg-id | 19527.1011045715@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | SQL Joins (tjennette@thomasnelson.com (Trace)) |
Список | pgsql-sql |
tjennette@thomasnelson.com (Trace) writes: > Can someone please tell me what this previously-written SQL is doing? > I don't understand how it is structured. Apparently whoever wrote this doesn't believe in parentheses. I'd think it a lot more readable with parentheses and appropriate indentation, viz: FROM ( (eStoreManager.estore_dept_prod LEFT OUTER JOIN eStoreManager.estore_product ON eStoreManager.estore_dept_prod.sku= eStoreManager.estore_product.sku) RIGHT OUTER JOIN (eStoreManager.tblCProductClassLEFT OUTER JOIN eStoreManager.tblCProductClassProduct ON eStoreManager.tblCProductClass.ProductClassID= eStoreManager.tblCProductClassProduct.ProductClassID) ON eStoreManager.estore_product.sku= eStoreManager.tblCProductClassProduct.sku) FULL OUTER JOIN (eStoreManager.tblCProductClassCreator INNER JOIN eStoreManager.tblCCreator ON eStoreManager.tblCProductClassCreator.CreatorID= eStoreManager.tblCCreator.CreatorID) ON eStoreManager.tblCProductClass.ProductClassID = eStoreManager.tblCProductClassCreator.ProductClassID BTW, since Postgres doesn't have schemas you'd need to lose the "eStoreManager." prefixes, which aren't doing anything for readability here either: FROM ( (estore_dept_prod LEFT OUTER JOIN estore_product ON estore_dept_prod.sku = estore_product.sku) RIGHT OUTER JOIN (tblCProductClass LEFT OUTER JOIN tblCProductClassProduct ON tblCProductClass.ProductClassID = tblCProductClassProduct.ProductClassID) ON estore_product.sku = tblCProductClassProduct.sku) FULL OUTER JOIN (tblCProductClassCreator INNER JOIN tblCCreator ON tblCProductClassCreator.CreatorID = tblCCreator.CreatorID) ON tblCProductClass.ProductClassID = tblCProductClassCreator.ProductClassID Does that help any? If you're wondering how I knew where to put the parentheses, it's because there's no place else they could go and still have a syntactically valid statement. So I suppose the author felt they were unnecessary. But I think it's more readable with 'em. regards, tom lane
В списке pgsql-sql по дате отправления: