1.试过 left join 如下:
select * from `guestbook` as g left join `user` as u on u.userid=g.userid where g.usernamelike '%faisun%' or u.username like '%faisun%'
这条语句出现的问题是:记录1 的 username 值为空,因为 `u` 中没有匹配的记录,所以 `u`.username 为空.想要的是记录1 的 usrename 值为 '填写的用户名'
2.而单单检索 `u` 表也不行,因为那样无法按 username 搜索
3.`u` 表中的用户记录是变动的,所以`g`表中 userid >0 时 username,email,title 写上对应的值也不行.不可能用户更改注册资料的时候,也改一遍 `g` 中的记录.
select * from `guestbook` as g left join `user` as u on u.userid=g.userid where g.usernamelike '%faisun%' or u.username like '%faisun%'
这条语句出现的问题是:记录1 的 username 值为空,因为 `u` 中没有匹配的记录,所以 `u`.username 为空.想要的是记录1 的 usrename 值为 '填写的用户名'
2.而单单检索 `u` 表也不行,因为那样无法按 username 搜索
3.`u` 表中的用户记录是变动的,所以`g`表中 userid >0 时 username,email,title 写上对应的值也不行.不可能用户更改注册资料的时候,也改一遍 `g` 中的记录.
union
select username, email from guestbook where guestbookid=0 and .......后面的......自己加上union是要mysql4.1的,ifnull不清楚,自己试一下
----------------------------------------------------------
4.1.* 版本已经支持union查询了