<cfparam
name="FORM.list_trait_id"
type="regex"
pattern="[\d,]*"
default=""
/>
<cfif Len( FORM.list_trait_id )>
<cfquery name="qGirl" datasource="ben">
SELECT
g.id,
g.name
FROM
girl g
INNER JOIN
(
SELECT
gtjn.girl_id
FROM
girl_trait_jn gtjn
WHERE
gtjn.trait_id IN ( <cfqueryparam value="#FORM.list_trait_id#" cfsqltype="cf_sql_integer" list="true" /> )
GROUP BY
gtjn.girl_id
HAVING
COUNT( * ) = <cfqueryparam value="#ListLen( FORM.list_trait_id )#" cfsqltype="cf_sql_integer" />
) AS filter
ON
g.id = filter.girl_id
ORDER BY
g.name ASC
</cfquery>
</cfif>
<cfquery name="qTrait" datasource="ben">
SELECT
id,
name
FROM
trait
ORDER BY
name ASC
</cfquery>
<cfoutput>
<!DOCTYPE html PUBLIC "- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Select Records My ID Set Matching</title>
</head>
<body>
<h1>
Select Traits
</h1>
<form action="#CGI.script_name#" method="post">
<p>
<cfloop query="qTrait">
<label>
<input
type="checkbox"
name="list_trait_id"
value="#qTrait.id#"
<cfif ListFind( FORM.list_trait_id, qTrait.id )>
checked="true"
</cfif>
/>
#qTrait.name#
</label>
<br />
</cfloop>
</p>
<p>
<input type="submit" value="Get Girls!" />
</p>
</form>
<cfif Len( FORM.list_trait_id )>
<h2>
Matching Girls
</h2>
<ul>
<cfloop query="qGirl">
<li>
#qGirl.name#
</li>
</cfloop>
</ul>
</cfif>
</body>
</html>
</cfoutput>