2013-08-20 4 views
0

Прошу прощения за странный титул, я действительно не могу придумать способ описать это. У меня просто полный ментальный блок. В принципе, расположение таблицы выглядит так:Если у определенного идентификатора есть два значения

id, customer_id, company, date, (... other irrelevant fields) 
1 1   CompanyA 02/08/1111 
2 1   CompanyB 02/08/1111 
3 1   CompanyC 02/08/1111 

Я в принципе хочу, чтобы выбрать все клиенты идентификаторов, которые имеют записи в этой таблице как для CompanyA и CompanyB

Как бы я идти об этом?

+0

'выбрать * из TABNAME где компания = CompanyA И компания = CompanyB' – dhpratik

+1

@ dhpratik 'company' не может иметь два значения одновременно – Taryn

+0

SELECT customer_id FROM tabName WHERE company IN ('CompanyA', 'CompanyB'); – BuDen

ответ

0

Я понял это так, как я разместил это. Я писал сложные запросы весь день, и я просто не мог это получить. Это буквально всего лишь запрос OR.

+0

ОК, тогда вы не очень хорошо сформулировали вопрос;) Ответ @ bluefeet делает то, что Я * думал * вы имели в виду ... – BenM

+0

PLZ поставить ответ, чтобы мы могли также знать и использовать в случае будущего – dhpratik

+0

@BenM Я сделал, и я могу только обвинить длинный трудный день SQL :( – andy

5

Чтобы вернуть все company_ids, что оба CompanyA и CompanyB, то вы должны быть в состоянии использовать GROUP BY с предложением HAVING, чтобы получить результат:

select customer_id 
from yourtable 
where company in ('CompanyA', 'CompanyB') 
group by customer_id 
having count(distinct company) >= 2; 

См SQL Fiddle with Demo.

Если вы просто хотите, чтобы вернуть любой company_ids либо CompanyA или CompanyB, то вы можете использовать IN:

select customer_id 
from yourtable 
where company in ('CompanyA', 'CompanyB') 
+0

Я думаю, что первый запрос не верен. Если CompanyA дважды появляется для customer_id, этот запрос возвращает его – Augusto

+0

@Augusto Нет, это не так, поэтому используется 'DISTINCT'. Если я не включил' DISTINCT' в 'HAVING' , тогда вы будете правы - см. демонстрацию - http://sqlfiddle.com/#!2/3265c/1 – Taryn

+0

Я слепой. Мои извинения :). – Augusto

Смежные вопросы