PROPOSED QUERY
SELECT * FROM
(SELECT A.name,GROUP_CONCAT(B.occupation) occupations
FROM tbloccupation B INNER JOIN tblperson A
ON A.id = B.personid GROUP BY A.name) AA
WHERE occupations LIKE '%Social Worker%';
YOUR SAMPLE DATA
MySQL lalitmohan> DROP DATABASE IF EXISTS lalitmohan;
Query OK, 2 rows affected (0.03 sec)
MySQL (none)> CREATE DATABASE lalitmohan;
Query OK, 1 row affected (0.00 sec)
MySQL (none)> USE lalitmohan
Database changed
MySQL lalitmohan> CREATE TABLE tblperson
-> (id int not null auto_increment,
-> name varchar(20),
-> primary key (id)
-> );
Query OK, 0 rows affected (0.05 sec)
MySQL lalitmohan> INSERT INTO tblperson (name) VALUES ('John');
Query OK, 1 row affected (0.02 sec)
MySQL lalitmohan> INSERT INTO tblperson (name) VALUES ('William');
Query OK, 1 row affected (0.00 sec)
MySQL lalitmohan> INSERT INTO tblperson (name) VALUES ('Adam');
Query OK, 1 row affected (0.01 sec)
MySQL lalitmohan> CREATE TABLE tbloccupation
-> (id int not null auto_increment,
-> personid int not null,
-> occupation varchar(20),
-> primary key (id)
-> );
Query OK, 0 rows affected (0.06 sec)
MySQL lalitmohan> INSERT INTO tbloccupation (personid,occupation) VALUES
-> (1,'Lawyer'),
-> (1,'Social Worker'),
-> (2,'Doctor'),
-> (2,'Social Worker'),
-> (3,'Teacher'),
-> (3,'Accountant');
Query OK, 6 rows affected (0.02 sec)
Records: 6 Duplicates: 0 Warnings: 0
MySQL lalitmohan> SELECT * FROM tblperson;
+----+---------+
| id | name |
+----+---------+
| 1 | John |
| 2 | William |
| 3 | Adam |
+----+---------+
3 rows in set (0.00 sec)
MySQL lalitmohan> SELECT * FROM tbloccupation;
+----+----------+---------------+
| id | personid | occupation |
+----+----------+---------------+
| 1 | 1 | Lawyer |
| 2 | 1 | Social Worker |
| 3 | 2 | Doctor |
| 4 | 2 | Social Worker |
| 5 | 3 | Teacher |
| 6 | 3 | Accountant |
+----+----------+---------------+
6 rows in set (0.00 sec)
MySQL lalitmohan>
PROPOSED QUERY TESTED
MySQL lalitmohan> SELECT * FROM
-> (SELECT A.name,GROUP_CONCAT(B.occupation) occupations
-> FROM tbloccupation B INNER JOIN tblperson A
-> ON A.id = B.personid GROUP BY A.name) AA
-> WHERE occupations LIKE '%Social Worker%';
+---------+----------------------+
| name | occupations |
+---------+----------------------+
| John | Lawyer,Social Worker |
| William | Social Worker,Doctor |
+---------+----------------------+
2 rows in set (0.00 sec)
MySQL lalitmohan>