我基本上试图检索数据并在满足3个条件时执行一些步骤。我有一个表说联系人列(contactid(PrimaryKey),personid,名字,姓氏,电子邮件) 现在我基本上试图找到主键,即满足多个条件时员工的Contactid,即firstname ='abc'和email ='abc@yahoo.com'。现在问题主要是因为这个表可能有重复项,员工可能有多个电子邮件地址。
我在考虑像
这样的代码Select * from contact where firstname IN ('','','',) and lastname IN ('','','') and emailid IN ('','','')
我正在测试,但我仍然不确定基本上我很困惑,因为我在查询中有IN。在这种情况下代码是否顺序执行?或者,如果你可以帮助我采用其他方法,那就太棒了。
答案 0 :(得分:3)
您想要的是以下内容:
SELECT *
FROM contact
WHERE (firstname = 'fname1' AND lastname = 'lname1' and emailid ='email1')
OR (firstname = 'fname2' AND lastname = 'lname2' and emailid ='email2')
OR (firstname = 'fname3' AND lastname = 'lname3' and emailid ='email3')
IN列表允许许多不同的组合。对此不太有用。
另一种选择是将允许的组合放在一个单独的表中并使用JOIN:
SELECT C.*
FROM contact C JOIN allowedCombinations A
ON C.firstname = A.firstname AND C.lastname = A.lastname AND C.emailid = A.emailid