MySQL查询找出匹配记录

时间:2018-03-18 13:01:03

标签: mysql sql mysql-workbench

我有3张桌子: 1)客户2)租赁3)演员。

我想要这样的结果:租赁表包含客户租用的电影

我们将从此查询中获得结果:

SELECT customers.first_name,customers.last_name
FROM customers LEFT JOIN
     rentals
     ON customers.customer_id = rentals.customer_id

我想要的是这个结果:我必须找出在actors表中具有相同名字和姓氏的客户。

我已经使用此查询完成了查询以查找customers表和actors表之间的匹配结果:

SELECT DISTINCT customers.first_name,customers.last_name
FROM customers JOIN
     actors
     ON customers.first_name LIKE CONCAT('%',actors.first_name,'%') AND customers.last_name LIKE CONCAT('%',actors.last_name,'%') 

请帮我找一个查询。

我试过这样,但我不知道它是否准确:

 SELECT customers.first_name
      , customers.last_name 
   FROM customers 
   JOIN actors 
     ON customers.first_name LIKE CONCAT('%',actors.first_name,'%') 
    AND customers.last_name LIKE CONCAT('%',actors.last_name,'%') 
  WHERE customers.customer_id IN (SELECT rentals.customer_id FROM rentals)

1 个答案:

答案 0 :(得分:2)

如果您想要客户的名字和最后相同(而不是在相同的模式中)分别使用演员的名字和姓氏,=就足够了。

SELECT DISTINCT customers.first_name,customers.last_name
FROM customers 
JOIN actors 
ON customers.first_name = actors.first_name AND customers.last_name = actors.last_name  
WHERE customers.customer_id IN (SELECT rentals.customer_id FROM rentals)