From: Aaron Paetznick on
Many of my MySQL tables have columns with the same name. I want to have
PDO include table names in named result sets. For example:

$sth = $dbh->prepare("SELECT * FROM table0, table1");
$result = $sth->fetchAll(PDO::FETCH_ASSOC);


I want $result to be organized like:

echo $result["table0.column0"];
echo $result["table0.column1"];
echo $result["table1.column0"];
echo $result["table1.column1"];


Or, alternatively:

echo $result["table0"]["column0"];
echo $result["table0"]["column1"];
echo $result["table1"]["column0"];
echo $result["table1"]["column1"];


Any ideas? Thanks!


--Aaron

From: Niel Archer on
> Many of my MySQL tables have columns with the same name. I want to have
> PDO include table names in named result sets. For example:
>
> $sth = $dbh->prepare("SELECT * FROM table0, table1");
> $result = $sth->fetchAll(PDO::FETCH_ASSOC);
>
>
> I want $result to be organized like:
>
> echo $result["table0.column0"];
> echo $result["table0.column1"];
> echo $result["table1.column0"];
> echo $result["table1.column1"];
>
>
> Or, alternatively:
>
> echo $result["table0"]["column0"];
> echo $result["table0"]["column1"];
> echo $result["table1"]["column0"];
> echo $result["table1"]["column1"];
>
>
> Any ideas? Thanks!

Sounds like you want to UNION two SELECTs
http://dev.mysql.com/doc/refman/5.0/en/union.html

(SELECT col1, col2, col4 FROM table1 WHERE ... ORDER BY ...)
UNION
(SELECT col1, col2, col4 FROM table2 WHERE ... ORDER BY ...)


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

--
Niel Archer
niel.archer (at) blueyonder.co.uk


From: Richard Quadling on
On 24 March 2010 16:05, Aaron Paetznick <aaronp(a)critd.com> wrote:
> Many of my MySQL tables have columns with the same name.  I want to have PDO
> include table names in named result sets.  For example:
>
>  $sth = $dbh->prepare("SELECT * FROM table0, table1");
>  $result = $sth->fetchAll(PDO::FETCH_ASSOC);
>
>
> I want $result to be organized like:
>
>  echo $result["table0.column0"];
>  echo $result["table0.column1"];
>  echo $result["table1.column0"];
>  echo $result["table1.column1"];
>
>
> Or, alternatively:
>
>  echo $result["table0"]["column0"];
>  echo $result["table0"]["column1"];
>  echo $result["table1"]["column0"];
>  echo $result["table1"]["column1"];
>
>
> Any ideas?  Thanks!
>
>
> --Aaron
>
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

The data coming from the server dictates the column names, not PDO.

If you need to identify the names, then use aliases in the SQL.





--
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling
From: Aaron Paetznick on
Thanks for the advise. I wanted a more automatic method of prefixing
column names, but I ended up just aliasing them all.

I know I could always just issue multiple SELECTs, but I wish MySQL
would support this sort of functionality natively. I'd really like to
reference my results as $result["table0"]["column0"] from a single SELECT.

Anyways, thanks all.


--Aaron


On 3/24/2010 11:28 AM, Niel Archer wrote:
>> Many of my MySQL tables have columns with the same name. I want to have
>> PDO include table names in named result sets. For example:
>>
>> $sth = $dbh->prepare("SELECT * FROM table0, table1");
>> $result = $sth->fetchAll(PDO::FETCH_ASSOC);
>>
>>
>> I want $result to be organized like:
>>
>> echo $result["table0.column0"];
>> echo $result["table0.column1"];
>> echo $result["table1.column0"];
>> echo $result["table1.column1"];
>>
>>
>> Or, alternatively:
>>
>> echo $result["table0"]["column0"];
>> echo $result["table0"]["column1"];
>> echo $result["table1"]["column0"];
>> echo $result["table1"]["column1"];
>>
>>
>> Any ideas? Thanks!
>
> Sounds like you want to UNION two SELECTs
> http://dev.mysql.com/doc/refman/5.0/en/union.html
>
> (SELECT col1, col2, col4 FROM table1 WHERE ... ORDER BY ...)
> UNION
> (SELECT col1, col2, col4 FROM table2 WHERE ... ORDER BY ...)
>
>
>> --Aaron
>>
>>
>> --
>> PHP Database Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>
> --
> Niel Archer
> niel.archer (at) blueyonder.co.uk
>
>
>
From: Richard Quadling on
On 24 March 2010 18:04, Aaron Paetznick <aaronp(a)critd.com> wrote:
> Thanks for the advise.  I wanted a more automatic method of prefixing column
> names, but I ended up just aliasing them all.
>
> I know I could always just issue multiple SELECTs, but I wish MySQL would
> support this sort of functionality natively.  I'd really like to reference
> my results as $result["table0"]["column0"] from a single SELECT.
>
> Anyways, thanks all.
>
>
> --Aaron
>
>
> On 3/24/2010 11:28 AM, Niel Archer wrote:
>>>
>>> Many of my MySQL tables have columns with the same name.  I want to have
>>> PDO include table names in named result sets.  For example:
>>>
>>>    $sth = $dbh->prepare("SELECT * FROM table0, table1");
>>>    $result = $sth->fetchAll(PDO::FETCH_ASSOC);
>>>
>>>
>>> I want $result to be organized like:
>>>
>>>    echo $result["table0.column0"];
>>>    echo $result["table0.column1"];
>>>    echo $result["table1.column0"];
>>>    echo $result["table1.column1"];
>>>
>>>
>>> Or, alternatively:
>>>
>>>    echo $result["table0"]["column0"];
>>>    echo $result["table0"]["column1"];
>>>    echo $result["table1"]["column0"];
>>>    echo $result["table1"]["column1"];
>>>
>>>
>>> Any ideas?  Thanks!
>>
>> Sounds like you want to UNION two SELECTs
>> http://dev.mysql.com/doc/refman/5.0/en/union.html
>>
>> (SELECT col1, col2, col4 FROM table1 WHERE ... ORDER BY ...)
>> UNION
>> (SELECT col1, col2, col4 FROM table2 WHERE ... ORDER BY ...)
>>
>>
>>> --Aaron
>>>
>>>
>>> --
>>> PHP Database Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>> --
>> Niel Archer
>> niel.archer (at) blueyonder.co.uk
>>
>>
>>
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

I use MS SQL and have used other DBs. I've never seen the table name
as part of the column name in a result set on any of them.


--
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling
 | 
Pages: 1
Prev: help needed.
Next: Ldap sasl bind(gssapi problem)