检查整个表中与sql中where子句匹配的值

xfyts7mz  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(304)

我试图从有多个列的表中获取数据,但我只想获取用单个名称表示两个代码的行。喜欢

customer_id     code   
  ct001           abc
  ct002           xyz
  ct001           xyz
  ct003           abc

这里没有唯一值或主键,现在查询应该只返回ct001,因为它同时有两个代码,即和xyz。
如何实现这一点,现在我正在尝试使用这个查询。

$sql = "SELECT *  FROM code_table WHERE code IN ('abc' ,'xyz') 
        AND customer_id= '" .$row['customer_id'] . "'";

我从另一个表中获取客户id,并在循环中使用此查询

eqqqjvef

eqqqjvef1#

我想你想要:

SELECT code 
FROM code_table
WHERE code IN ('abc', 'xyz') 
GROUP BY code
HAVING COUNT(*) = 2;

当您可以让数据库为您完成工作时,您不应该在应用程序代码中执行循环。

相关问题