Getting back to your original question, I don't know of any way you can use
a variable as a table name directly. You can, however, pull off something
like this:

mysql> set @table = "stage";
Query OK, 0 rows affected (0.06 sec)

mysql> set @stmt = CONCAT("SELECT * FROM ", @table); /* Arbitrarily complex
stuff here */
Query OK, 0 rows affected (0.05 sec)

mysql> prepare foo from @stmt;
Query OK, 0 rows affected (0.03 sec)
Statement prepared

mysql> execute foo;
+----------+------------+
| stage_id | stage_name |
+----------+------------+
|        1 | Imminent   |
|        2 | Incoming   |
|        3 | Follow Up  |
|        4 | Eventual   |
|        5 | Interested |
|        6 | Ongoing    |
|        7 | Accts      |
|        8 | Dump       |
|        9 | Purchased  |
+----------+------------+
9 rows in set (0.05 sec)

Regards,

Jerry Schwartz
The Infoshop by Global Information Incorporated
195 Farmington Ave.
Farmington, CT 06032

860.674.8796 / FAX: 860.674.8341

www.the-infoshop.com
www.giiexpress.com
www.etudes-marche.com


> -----Original Message-----
> From: Ed Lazor [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, June 26, 2007 4:37 PM
> To: 'Octavian Rasnita'; mysql@lists.mysql.com
> Subject: RE: select statement with variable for table_reference?
>
> Ok, I used your approach like this:
>
> --------------------------------------------------------------
> select i.scanned_barcode, v.title from inventory as i
> left join version as v on i.record_id = v.id
> where
> i.database_id = '1' AND i.table_id = '1' AND
> i.user_id = '33' and category_id = '766')
>
> UNION
>
> (select i.scanned_barcode, v.title from inventory as i
> left join amg.dvd as v on i.record_id = v.id
> where
> i.database_id = '2' AND i.table_id = '3' AND
> i.user_id = '33' and category_id = '766')
>
>
> order by title DESC
> --------------------------------------------------------------
>
> It "works" like you're suggesting.  I have to add a union for
> every one of
> the tables data is being stored in.  That means I end up
> selecting something
> from every product table, regardless of whether the user actually has
> something in there or not.  Improving on this idea would be
> finding a way to
> just query the relevant tables... some sort of conditional union.  Any
> ideas?
>
> -Ed
>
>
>
> > -----Original Message-----
> > From: Octavian Rasnita [mailto:[EMAIL PROTECTED]
> > Sent: Tuesday, June 26, 2007 1:02 PM
> > To: Ed Lazor; mysql@lists.mysql.com
> > Subject: Re: select statement with variable for table_reference?
> >
> > I am using the following method for doing this, but I am
> sure it is not
> > the
> > best one:
> >
> > (select id, title, author, 'book' as type from books)
> > union
> > (select id, title, author, 'cd' as type from cds)
> > union
> > (select id, title, author, 'dvd' as type from dvds)
> > where ...
> > order by ...
> > limit ...;
> >
> > Octavian
>
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
> http://lists.mysql.com/[EMAIL PROTECTED]
>
>




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to