Converting queries from MySQL 4 to MySQL 5

Thread Solved

Join Date: Nov 2008
Posts: 73
Reputation: filch is an unknown quantity at this point 
Solved Threads: 1
filch filch is offline Offline
Junior Poster in Training

Converting queries from MySQL 4 to MySQL 5

 
0
  #1
Dec 1st, 2008
OK .. I was migrating an application from a staging server where the MySQL version is 4.1.10a to a live server where the MySQL version is 5.0.45. There apparently is quite a difference between query syntax on one versus the other.

For example, in version 4, this worked:

  1. SELECT uas.usr_id_users, uas.airport_id_airport, a.airport_code, a.airport_name, a.airport_id, MAX(if(service_id_service=1, 1, 0)) AS JET, MAX(if(service_id_service=2, 1, 0)) AS GROUND, MAX(if(service_id_service=3, 1, 0)) AS GLYCOL, u.usr_fname AS FIRSTNAME, u.usr_lname AS LASTNAME, u.usr_email AS EMAIL
  2. FROM userairportservices uas, users u LEFT JOIN airport a ON a.airport_id = uas.airport_id_airport
  3. WHERE uas.usr_id_users = usr_id
  4. GROUP BY airport_id_airport LIMIT 0, 30

However, on version 5 it does not.

Here is what I had to do to make it work:

  1. SELECT uas.usr_id_users, uas.airport_id_airport, a.airport_code, a.airport_name, a.airport_id, MAX( if( service_id_service =1, 1, 0 ) ) AS JET, MAX( if( service_id_service =2, 1, 0 ) ) AS GROUND, MAX( if( service_id_service =3, 1, 0 ) ) AS GLYCOL, u.usr_fname AS FIRSTNAME, u.usr_lname AS LASTNAME, u.usr_email AS EMAIL
  2. FROM users u LEFT JOIN userairportservices uas ON uas.usr_id_users =usr_id LEFT JOIN airport a ON a.airport_id = uas.airport_id_airport
  3. GROUP BY airport_id_airport LIMIT 0 , 30

As an example, here is another query I had that did not work in VER: 5:

  1. SELECT usr_id, usr_access, usr_title, usr_fname, usr_lname, usr_email, access.access, title.title
  2. FROM users INNER JOIN access, title ON access_id = usr_access AND title_id = usr_title

But, it was suggested by dickersonka to try the following, which worked:

  1. SELECT u.usr_id, u.usr_access, u.usr_title, u.usr_fname, u.usr_lname, u.usr_email, a.access, t.title
  2. FROM users u INNER JOIN access a ON a.access_id = u.usr_access INNER JOIN title t ON t.title_id = u.usr_title

So I post this here not to ask for help, which I have received plenty of here, but in the hopes this helps someone else who runs into this issue.

Cheers,

Dave
Reply With Quote Quick reply to this message  
Join Date: Aug 2008
Posts: 1,160
Reputation: dickersonka will become famous soon enough dickersonka will become famous soon enough 
Solved Threads: 137
dickersonka dickersonka is offline Offline
Veteran Poster

Re: Converting queries from MySQL 4 to MySQL 5

 
1
  #2
Dec 1st, 2008
here i found an article on the suggestion i gave you earlier

its because order of precedence, also always try to do joins this way, makes much cleaner code

http://damonparker.org/blog/2006/02/...yntax-changes/
Custom Application & Software Development
www.houseshark.net
Reply With Quote Quick reply to this message  
Join Date: Nov 2008
Posts: 73
Reputation: filch is an unknown quantity at this point 
Solved Threads: 1
filch filch is offline Offline
Junior Poster in Training

Re: Converting queries from MySQL 4 to MySQL 5

 
0
  #3
Dec 1st, 2008
Cheers ... I had a quick glance at this and the scarey thing is, for the most part, I understood it. Not perfectly clear but certainly not overly cloudy either.

Dave
Reply With Quote Quick reply to this message  
Join Date: Aug 2008
Posts: 1,160
Reputation: dickersonka will become famous soon enough dickersonka will become famous soon enough 
Solved Threads: 137
dickersonka dickersonka is offline Offline
Veteran Poster

Re: Converting queries from MySQL 4 to MySQL 5

 
0
  #4
Dec 1st, 2008
lol easiest way to explain it is be specific

  1. FROM table1, table2 JOIN table3 on id = table3.id

who knows what that means

now this
  1. FROM table1 INNER JOIN table2 on table1.id = table2.id
  2. INNER JOIN table 3 on table3.id = table2.id

looks much clearer at least to me
Custom Application & Software Development
www.houseshark.net
Reply With Quote Quick reply to this message  
Reply

This thread has been marked solved.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the MySQL Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC