Re: Conversion from Access JOIN syntax to MySQL JOIN syntax...

2001-06-26 Thread Rolf Hopkins

As it is such a big query, I don't have time to look at it for you but it
may be easier if you convert the RIGHT JOINS to LEFT JOINS for starters.
The manual does recommend LEFT JOINS, mainly for portability.

First part would be something like

(leg_activity LEFT JOIN leg_comm_hist ON (leg_comm_hist.leg_activity_id =
leg_activity.id) LEFT JOIN leg_version_hist ON
leg_version_hist.leg_activity_id = leg_activity.id)

- Original Message -
From: Joshua J. Kugler [EMAIL PROTECTED]
To: MySQL [EMAIL PROTECTED]
Sent: Wednesday, June 27, 2001 2:47
Subject: Conversion from Access JOIN syntax to MySQL JOIN syntax...


 Yes, I've read the docs on JOIN syntax, and search the list archives for
 similar information.

 I have this query:

 SELECT leg_activity.activity_date, leg_transitions.trans_desc,
 leg_text.leg_version, body_list.body_name
 FROM (((leg_version_hist RIGHT JOIN (leg_comm_hist RIGHT JOIN leg_activity
ON
 leg_comm_hist.leg_activity_id = leg_activity.id)
 ON leg_version_hist.leg_activity_id = leg_activity.id) LEFT JOIN leg_text
ON
 leg_version_hist.leg_text_id = leg_text.id)
 INNER JOIN leg_transitions ON leg_activity.transition_id =
 leg_transitions.id) LEFT JOIN body_list ON leg_comm_hist.body_list_id =
 body_list.id
 WHERE leg_activity.leg_header_id = 8

 That was generated by Access's query designer.  It works under Access, but
 passing to MySQL through ODBC, Access generates four or five queries to do
 the job.  This make it a very long query (1 or 2 seconds), not appropriate
 for browsing through records.

 Trying to give this directly to MySQL generates an error:

 You have an error in your SQL syntax near '(leg_comm_hist RIGHT JOIN
 leg_activity ON leg_comm_hist.leg_ac' at line 2.

 I understand JOIN's, at least in concept, but not well enough to construct
 manually.  Is there a tool out there similar to Access's query designer
that
 will design MySQL compatible queries? Are there rules for convert Access
 queries to MySQL that I should be aware of?

 Thanks for any help you can give.

 --
 Joshua Kugler, Information Services Director
 Associated Students of the University of Alaska Fairbanks
 [EMAIL PROTECTED], 907-474-7601

 -
 Before posting, please check:
http://www.mysql.com/manual.php   (the manual)
http://lists.mysql.com/   (the list archive)

 To request this thread, e-mail [EMAIL PROTECTED]
 To unsubscribe, e-mail
[EMAIL PROTECTED]
 Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php


-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php




Re: Conversion from Access JOIN syntax to MySQL JOIN syntax...

2001-06-26 Thread Joshua J. Kugler

Thanks!  I was able to work on the query today, and manually assemble a query 
that did the same thing.  And thus, was a lot faster.  The main contention 
MySQL seems to have is the nested joins, such as when Access does this:

FROM (((leg_version_hist RIGHT JOIN (leg_comm_hist RIGHT JOIN
leg_activity ON leg_comm_hist.leg_activity_id = leg_activity.id)...

For some reason MySQL doesn't like that. :)  It's expecting a table name, not 
another JOIN.  At least that what it seems to me, but I could be wrong, not 
being very experienced with joins.  My query in MySQL ended being a lot clean 
looking, at least to me:

SELECT leg_activity.activity_date, leg_transitions.trans_desc, 
leg_text.leg_version, body_list.body_name
FROM leg_activity LEFT JOIN leg_comm_hist ON leg_activity.id = 
leg_comm_hist.leg_activity_id
LEFT JOIN  body_list ON leg_comm_hist.body_list_id = body_list.id
LEFT JOIN leg_version_hist ON leg_activity.id = 
leg_version_hist.leg_activity_id
LEFT JOIN leg_text ON leg_version_hist.leg_text_id = leg_text.id
LEFT JOIN leg_transitions ON leg_activity.transition_id = leg_transitions.id
WHERE leg_activity.leg_header_id = 8

And it works very well.  I'm happy. :)  Thanks for the pointers!

j- k-

On Tuesday 26 June 2001 17:57, Rolf Hopkins wrote:
 As it is such a big query, I don't have time to look at it for you but it
 may be easier if you convert the RIGHT JOINS to LEFT JOINS for starters.
 The manual does recommend LEFT JOINS, mainly for portability.

 First part would be something like

 (leg_activity LEFT JOIN leg_comm_hist ON (leg_comm_hist.leg_activity_id =
 leg_activity.id) LEFT JOIN leg_version_hist ON
 leg_version_hist.leg_activity_id = leg_activity.id)

 - Original Message -
 From: Joshua J. Kugler [EMAIL PROTECTED]
 To: MySQL [EMAIL PROTECTED]
 Sent: Wednesday, June 27, 2001 2:47
 Subject: Conversion from Access JOIN syntax to MySQL JOIN syntax...

  Yes, I've read the docs on JOIN syntax, and search the list archives for
  similar information.
 
  I have this query:
 
  SELECT leg_activity.activity_date, leg_transitions.trans_desc,
  leg_text.leg_version, body_list.body_name
  FROM (((leg_version_hist RIGHT JOIN (leg_comm_hist RIGHT JOIN
  leg_activity

 ON

  leg_comm_hist.leg_activity_id = leg_activity.id)
  ON leg_version_hist.leg_activity_id = leg_activity.id) LEFT JOIN leg_text

 ON

  leg_version_hist.leg_text_id = leg_text.id)
  INNER JOIN leg_transitions ON leg_activity.transition_id =
  leg_transitions.id) LEFT JOIN body_list ON leg_comm_hist.body_list_id =
  body_list.id
  WHERE leg_activity.leg_header_id = 8
 
  That was generated by Access's query designer.  It works under Access,
  but passing to MySQL through ODBC, Access generates four or five queries
  to do the job.  This make it a very long query (1 or 2 seconds), not
  appropriate for browsing through records.
 
  Trying to give this directly to MySQL generates an error:
 
  You have an error in your SQL syntax near '(leg_comm_hist RIGHT JOIN
  leg_activity ON leg_comm_hist.leg_ac' at line 2.
 
  I understand JOIN's, at least in concept, but not well enough to
  construct manually.  Is there a tool out there similar to Access's query
  designer

 that

  will design MySQL compatible queries? Are there rules for convert Access
  queries to MySQL that I should be aware of?
 
  Thanks for any help you can give.
 
  --
  Joshua Kugler, Information Services Director
  Associated Students of the University of Alaska Fairbanks
  [EMAIL PROTECTED], 907-474-7601
 
  -
  Before posting, please check:
 http://www.mysql.com/manual.php   (the manual)
 http://lists.mysql.com/   (the list archive)
 
  To request this thread, e-mail [EMAIL PROTECTED]
  To unsubscribe, e-mail

 [EMAIL PROTECTED]

  Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

 -
 Before posting, please check:
http://www.mysql.com/manual.php   (the manual)
http://lists.mysql.com/   (the list archive)

 To request this thread, e-mail [EMAIL PROTECTED]
 To unsubscribe, e-mail [EMAIL PROTECTED]
 Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

-- 
Joshua Kugler, Information Services Director
Associated Students of the University of Alaska Fairbanks
[EMAIL PROTECTED], 907-474-7601

-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php