user2135867
user2135867

Reputation:

PHP/MySQL Order by column in a different table

I am running this SQL Code:

sql=" SELECT * FROM channel_did ";
        $rs=mysql_query($sql,$pbx01_conn) or die(mysql_error());
        $counter=0;
        $display='';
        while($result=mysql_fetch_array($rs))
        {
            $sql2="SELECT * from client where id = '".$result["client_id"]."' ";
            $rs2=mysql_query($sql2,$pbx01_conn) or die(mysql_error());
            $result2=mysql_fetch_array($rs2);
}

so in the channel_did table the client_id column is a number then i do a lookup in the client table where the id equals the channel_id.client_id

how can i get the list (from channel_did) to order by the company column in the client table?

**channel_id**
id
did
client_id

**client**
id
name
company

so client.id = channel_did.client_id

Upvotes: 3

Views: 133

Answers (2)

srakl
srakl

Reputation: 2619

try something like this..

 SELECT i.* FROM `channel_did` AS i
    JOIN `client` AS c
    ON (i.client_id = c.id)
ORDER BY c.company DESC

Upvotes: 1

Pascamel
Pascamel

Reputation: 953

write a query with an inner join with both tables, select the fields from the first table, and use a column of the second table to sort your rows

SELECT a.* FROM channel_did a
INNER JOIN client b on a.client_id = b.id
ORDER BY b.company 

Of course this is in the case you have one and only one row in client corresponding for each row of channel_did

Hope it helps.

Upvotes: 3

Related Questions