The question is ..
The table is this.
+--------------------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------------+---------+------+-----+---------+----------------+ | facility_map_id | int(10) | NO | PRI | NULL | auto_increment | | facility_map_facility_id | int(10) | NO | MUL | NULL | | | facility_map_listing_id | int(10) | NO | | NULL | | +--------------------------+---------+------+-----+---------+----------------+
Data is this.
+-----------------+--------------------------+-------------------------+ | facility_map_id | facility_map_facility_id | facility_map_listing_id | +-----------------+--------------------------+-------------------------+ | 248 | 1 | 18 | | 259 | 1 | 19 | | 206 | 1 | 20 | | 244 | 1 | 21 | | 249 | 2 | 18 | | 207 | 2 | 20 | | 208 | 3 | 20 | | 245 | 3 | 21 | | 260 | 4 | 19 | | 261 | 5 | 19 | | 246 | 6 | 21 | | 250 | 7 | 18 | | 247 | 8 | 21 | +-----------------+--------------------------+-------------------------+
I run this query:
SELECT facility_map_listing_id FROM facility_map WHERE facility_map_facility_id IN(1, 2) GROUP BY facility_map_listing_id HAVING count(DISTINCT facility_map_facility_id) >= 2
and get it.
+-------------------------+ | facility_map_listing_id | +-------------------------+ | 18 | | 20 | +-------------------------+ 2 rows in set (0.00 sec)
It is right! - but can anyone explain why GROUP BY should be in the statement?
if it isnt and I run the same query, leaving out GROUP BY I get ..
+-------------------------+ | facility_map_listing_id | +-------------------------+ | 18 | +-------------------------+ 1 row in set (0.00 sec)
Can anyone explain this to me? Thanks!
source share