Mysql喜欢在两个表上查询

时间:2014-03-12 06:24:33

标签: mysql

我有两个表用户和作者

用户

    +---------+--------------+-----------+
    | user_id | first_name   | last_name |
    +---------+--------------+-----------+
    |    1    | Irene        | Appelbaum |
    |    2    | Leora        | Barel     |
    +---------+--------------+-----------+

作者

   +-----------+------------+-------------+-----------+
   | author_id | first_name | middle_name | last_name | 
   +-----------+------------+-------------+-----------+
   |         1 | Gregory    | L           | Campbell  | 
   +-----------+------------+-------------+-----------+

我的查询是

select u.first_name,a.first_name 
from user u,authors a 
where  u.first_name like'%gre%' a.first_name like'%gre%';

但是这个查询给了我两个表的结果

2 个答案:

答案 0 :(得分:0)

因为你对用户和作者表的关系没有id。

所以从用户表示例中Leora有Gregory的作者..就像Irene也有Gregory也是作者..

您必须为用户和作者表定义关系..

对不起,我的英语太可怕了:D

答案 1 :(得分:0)

可能你想要这样的东西:

select u.first_name,a.first_name 
from user u inner join author a on u.user_id=a.author_id
where  u.first_name like'%gre%' or a.first_name like'%gre%';
  • 您需要使用inner join
  • 并在where子句(orand
  • 中指定条件