I am trying to write a query that returns one row from table A whenever a column in joined table B contains multiple distinct values for a single matching row in table A. (A -> B is a 1 -> many relationship.) I built a SQL fiddle to demonstrate this in context: http://sqlfiddle.com/#!6/83952/1
In this fiddle, the design
column of the perf_ticket_type
table should be the same for every ticket_type
that has the same perf_id
, but I'm trying to select only the instances where it doesn't. So for perf_id
3, there is more than one unique design
being returned with the query I'm using currently.
What I want as my result is the two columns of the performance
table only for perf_id
3, based on the multiple values of design
for that perf_id
in the joined table.
I've been frustrated by understanding GROUP BY in the past, so I'm unsure if there's something different I could be doing here to get my desired result. At the moment, I think I can select what I have in the fiddle into a temp table and then do another select on that with a GROUP BY perf_id HAVING COUNT(*) > 1
to get what I want (as per select rows where column contains same data in more than one record), but that seems like it's an extra step.