SELECT query
SELECT a. * , d.agent_id, COUNT( d.driver_id ) AS `noofdrivers`
FROM ta_agent a, ta_drivers d
WHERE a.agent_id = d.agent_id
AND a.agent_id = ".$agent_id."
GROUP BY a.agent_id
SELECT query returns this below records
agent_id agent_name company_name pricing_plan noofdrivers
-------- ---------- ----------- ------------ -----------
3 CCC ZZZ 8499 2
2 BBB YYY 3499 3
DRIVER DB TABLE
agent_id driver_id driver_name
-------- ---------- -----------
2 1 EEE
2 2 FFF
2 3 GGG
1 4 HHH
3 5 III
3 6 JJJ
how do I INSERT the records based on above SELECT query results. if pricing_plan
is 3499 agent_id
2 can add only 5 drivers. Now, agent_id
2 have 3 drivers. So, still he can add 2 drivers only. How to do this limit restriction in mysql query?
Try this,
insert into driver(driver_id, agent_id, driver_name)
select ins.driver_id, ins.agent_id, ins.driver_name
from (select 7 as driver_id, 2 as agent_id, 'KKK' as driver_name) ins
where (select count(*)
from driver d, agent a
where d.agent_id=a.agent_id and a.agent_id=ins.agent_id and a.pricing_plan=3499)<5;
In given query, you'l have to place variables $driver_id
, $agent_id
and $driver_name
for values 7
, 2
and 'KKK'
respectively.
so, it will look like,
$sql="insert into driver(driver_id, agent_id, driver_name)
select ins.driver_id, ins.agent_id, ins.driver_name
from (select $driver_id as driver_id, $agent_id as agent_id, $driver_name as driver_name) ins
where (select count(*)
from driver d, agent a
where d.agent_id=a.agent_id and a.agent_id=ins.agent_id and a.pricing_plan=3499)<5";
Here is DEMO SQLFiddle