Hello.
Maybe this could help. SELECT t1.Users_Code, IF( t1.Affected_Member IS NULL, 'No entry in Table2', IFNULL( t2.Member_Surname, t2.Member_Groupname) ) AS NAME FROM Table1 t1 LEFT JOIN Table2 t2 ON t1.Affected_Member = t2.Member_Code; +------------+--------------------+ | Users_Code | NAME | +------------+--------------------+ | 1 | No entry in Table2 | | 2 | Sur1 | | 3 | Group1 | | 4 | Sur2 | +------------+--------------------+ Data in the tables: mysql> select * from Table1; +------------+--------------+-----------------+ | Users_Code | Users_action | Affected_Member | +------------+--------------+-----------------+ | 1 | action1 | NULL | | 2 | action2 | 1 | | 3 | action3 | 2 | | 4 | action4 | 3 | +------------+--------------+-----------------+ mysql> select * from Table2; +-------------+----------------+------------------+ | Member_code | Member_Surname | Member_Groupname | +-------------+----------------+------------------+ | 1 | Sur1 | NULL | | 2 | NULL | Group1 | | 3 | Sur2 | NULL | +-------------+----------------+------------------+ You can change LEFT JOIN to INNER JOIN if you don't want to process NULL values in Affected_Member field. "Martin Lancaster" <[EMAIL PROTECTED]> wrote: > Hi all, > > I am using MySQL 4.1.11nt > I have two MyISAM tables: > > Table 1 holds usage information about users accessing various parts of = > the > database. > Relevant fields are "Users_Code", "Users_action" and "Affected_Member". > > Table 2 holds personal information about the Member. > Relevant fields are "Member_Code", "Member_Surname" and = > "Member_Groupname" > > Table1.Affected_Member is the link to Table2.Member_Code. > Table1.Affected_Member can be a null field. > > My application is coded so that if Table2.Member_Surname is null, = > there > will be a string value in Table2.Member_Groupname. The reverse is also = > true. > The application is also coded so that Table2.Member_Surname and > Table2.Member_Groupname cannot both be null, nor both have a value. > > I am trying to code the following: > 1. If Table1.Affected_Member is not null, then get = > Table2.Member_Surname > where Table1.Affected_Member =3d Table2.Member_Code, assigning this to = > the > output of the query as Member_Name. > > 2. If Member_Name is not a string then let Member_Name =3d > Table2.Member_GroupName > > This will give the result that if Table1.Affected_Member is not null, = > then > the returned value of Member_Name will be either the Surname of the = > Member > or the Groupname of the Member. > > Although I am having success with coding part 1. of the query, I = > cannot get > Part 2 of the query to give the required result. > > I can take the resultset from just running a query to get the = > information > from table 1, and then go through this result set, running further = > queries > to get the information required from Table 2, but, as I see it, this = > will > have to be a new query for each record in the Table1.Resultset, which = > will > take up a lot of bandwidth, and make the application slow. > > Is it possible to code this into one single query that returns all of = > the > values required? > > Many thanks for your help! > > Martin -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.NET http://www.ensita.net/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Gleb Paharenko / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.NET <___/ www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]