您正在尝试执行一个不打算计划的mysql选择,并希望有人能够对它进行一些了解。
我们估计有10,000多个上市记录,一个客户可以拥有不同地点的多个上市记录。我们需要选择所有客户列表,其中至少有一个位置等于特定位置。
例如,假设客户1在sheffiled,doncaster,leeds,wakefield有一个列表,而客户2在伦敦和布莱顿有列表。
现在我想选择所有客户列表,其中一个列表是谢菲尔德区域。
我希望能够获得客户1的4行,因为他的一个列表位于谢菲尔德。
为了这个例子,我们假设该表只包含customerId和LocationName
我需要选择其中一个locationNames = sheffield的所有customerIds。所以Id得到了4行的cusotmer ID和4个位置
你如何在mysql中编写这个查询?我猜测subselect但不太确定。
答案 0 :(得分:4)
SELECT customerid FROM customers_location
WHERE customerid IN(SELECT DISTINCT customerid FROM customers_location WHERE LocationName = 'sheffield')
答案 1 :(得分:2)
类似的东西:
SELECT * FROM CUST_TABLE WHERE CUST_ID IN (
SELECT DISTINCT CUST_ID FROM CUST_TABLE WHERE CUST_LOCN='Sheffield')
请注意;明确的条款可能不是绝对必要的,不确定。 这会给你举个例子。 4个客户xyz的记录,其中一个列表位置为谢菲尔德,我认为这就是你所要求的。