* andy > thanx for your help. Anyhow this statement does not return the wanted > fields. > > I would like to return the website and the signature of the > user, but only > if those values are available. There might be none of them available, but > maybe 1 or even both. > > this query: > SELECT > w.website, > s.signature > FROM > user_websites > LEFT JOIN user_signature AS s ON s.user_id = '3' > LEFT JOIN user_websites AS w ON w.user_id = '3' > > does return all records of the table website (45000!)
Yes... you should have a user table, with one row for each user, and select FROM that table. > Your stmt does join the website table with the comment (in my case > signature) table: > > SELECT w.website, c.comment > > FROM user_websites AS w > > LEFT JOIN user_comments AS c ON c.user_id = w.user_id > > WHERE w.user_id = '10' > > But thats not what I want. I do want just to know if the user has > a website, > or a signature and then pull them out if they are there. You can not find out anything about a 'user' if you don't have a 'user' in your system... :) You should have a user table, with user id, user name etc. The user id should be the primary key, and your fields 'user_id' in the tables user_signatures and user_websites would reffer to the primary key. If you really don't have/want a user table, try something like this: (You use quotes around your user_id constants, so I assume it is a string... it could (should?) be an integer. If it is an integer, use 'int' instead of 'varchar(255)' in the create statement.) create temporary table tmp_users (user_id varchar(255)); insert into tmp_users values ('3'); SELECT w.website, s.signature FROM tmp_users LEFT JOIN user_signature AS s ON s.user_id = tmp_users.user_id LEFT JOIN user_websites AS w ON w.user_id = tmp_users.user_id WHERE tmp_users.user_id = '3' The WHERE clause is not needed here, but I include it because it _is_ needed if you use a real user table, with multiple rows. Your first query in this post would probably work if you select FROM tmp_users, but proper join conditions like in this last query is cleaner, and easier to expand. A temporary table is automatically deleted when the connection is closed, and if multiple users create a temporary table with the same name at the same time, that's ok with mysql. -- Roger --------------------------------------------------------------------- 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