Re: mysql case statement

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jun 27, 2010 at 4:08 AM, Tanel Tammik <keevitaja@xxxxxxxxx> wrote:
> Hello,
>
> how to select only if value is present?
>
>    $query = $db->query("select menus.id, menus.name,
>      case
>        when panels.id is not null then '1'
>        end as hiddenpanel
>
>    from " . \DB_MENUS . " as menus
>      left join " . \DB_HIDDENPANELS . " as panels on (menus.id =
> panels.menu_id)
>    where menus.id='" . (int)$id . "'
>    ");
>
> i would like to select hiddenpanel only if there is a corresponding value in
> DB_HIDDENPANELS. At the moment i get NULL if there is no corresponding value
> in HIDDENPANELS table!
>
> Br
> Tanel
>

That's what a LEFT JOIN does - it returns all rows from the LEFT table
that match the criteria in the WHERE clause, and then returns any rows
from the RIGHT table that happen do match. If you only want rows that
exist in both tables, change the join from LEFT (OUTER) JOIN to INNER
JOIN.

Andrew

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux