Обсуждение: Query Formulation Question

Поиск
Список
Период
Сортировка

Query Formulation Question

От
Дата:
consider the following simplified queries (php using
heredoc):

$sql_1 = <<<_EOSQL

select count(inspect)
from t_inspect, t_product, t_test_area
where t_product.product_num = 1
and t_test_area.id = 5

_EOSQL

$sql_2 = <<<_EOSQL

select count(inspect)
from t_inspect, t_product, t_test_area
where t_product.product_num = 1

_EOSQL

what is the best way to handle both of these cases in
one statement?

i know it would take the form of $sql_1, but what
value should i feed to t_test_area.id?  is there
syntax that will just ignore it or do i need to send a
value of 'NOT NULL'?  will NOT NULL slow down the
query when compared to $sql_2?

am i missing a better way to structure these queries?

as always, tia...

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

Re: Query Formulation Question

От
Sean Davis
Дата:
operationsengineer1@yahoo.com wrote:
> consider the following simplified queries (php using
> heredoc):
>
> $sql_1 = <<<_EOSQL
>
> select count(inspect)
> from t_inspect, t_product, t_test_area
> where t_product.product_num = 1
> and t_test_area.id = 5
>
> _EOSQL
>
> $sql_2 = <<<_EOSQL
>
> select count(inspect)
> from t_inspect, t_product, t_test_area
> where t_product.product_num = 1
>
> _EOSQL
>
> what is the best way to handle both of these cases in
> one statement?

You are using a programming language--why not construct the query on the
fly?  Why the requirement to use the heredoc for the entire query string?

Sean

Re: Query Formulation Question

От
Дата:
> operationsengineer1@yahoo.com wrote:
> > consider the following simplified queries (php
> using
> > heredoc):
> >
> > $sql_1 = <<<_EOSQL
> >
> > select count(inspect)
> > from t_inspect, t_product, t_test_area
> > where t_product.product_num = 1
> > and t_test_area.id = 5
> >
> > _EOSQL
> >
> > $sql_2 = <<<_EOSQL
> >
> > select count(inspect)
> > from t_inspect, t_product, t_test_area
> > where t_product.product_num = 1
> >
> > _EOSQL
> >
> > what is the best way to handle both of these cases
> in
> > one statement?
>
> You are using a programming language--why not
> construct the query on the
> fly?

the simple answer is i don't know how.  btw, that's
the complex answer, too.  ;-)  can you share a quick
example?

> Why the requirement to use the heredoc for the
> entire query string?

that's not a requirement.  i like the heredoc format
for readability and ease of c&p to pgadmin3's query
executer.  however, i'm not married to it and will use
another option when i have a good reason.

based on your comments, i could use a heredoc for the
base query and then check to see if i need to
concatenate the where statement to it.  i think that
will work.

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

Re: Query Formulation Question

От
Sean Davis
Дата:
operationsengineer1@yahoo.com wrote:
>>operationsengineer1@yahoo.com wrote:
>>
>>>consider the following simplified queries (php
>>
>>using
>>
>>>heredoc):
>>>
>>>$sql_1 = <<<_EOSQL
>>>
>>>select count(inspect)
>>>from t_inspect, t_product, t_test_area
>>>where t_product.product_num = 1
>>>and t_test_area.id = 5
>>>
>>>_EOSQL
>>>
>>>$sql_2 = <<<_EOSQL
>>>
>>>select count(inspect)
>>>from t_inspect, t_product, t_test_area
>>>where t_product.product_num = 1
>>>
>>>_EOSQL
>>>
>>>what is the best way to handle both of these cases
>>
>>in
>>
>>>one statement?
>>
>>You are using a programming language--why not
>>construct the query on the
>>fly?
>
>
> the simple answer is i don't know how.  btw, that's
> the complex answer, too.  ;-)  can you share a quick
> example?
>
>
>>Why the requirement to use the heredoc for the
>>entire query string?
>
>
> that's not a requirement.  i like the heredoc format
> for readability and ease of c&p to pgadmin3's query
> executer.  however, i'm not married to it and will use
> another option when i have a good reason.
>
> based on your comments, i could use a heredoc for the
> base query and then check to see if i need to
> concatenate the where statement to it.  i think that
> will work.

That sounds reasonable.  You might look at a database abstraction layer.
  I'm not sure what is available for php, though.

Sean