SELECT内部插入多个表中的多行


SELECT inside INSERT multiple rows from multiple tables

这是我的代码:

INSERT INTO CAR_RENTAL.billing
(NO_OF_DAYS,BILL_DATE,DAILY_RENT,ADVANCE,C_NAME,RENTAL_ID,C_CARD,VIN)
VALUES
(7,'2016-01-12',500,1000,
(select c_name from car_rental.customer where c_id=11),
(select rental_id from car_rental.company where rental_id=1),
(select c_card from car_rental.customer where c_id=11),'aud-890'),
(7,'2016-02-12',5000,12000,
(select c_name from car_rental.customer where c_id=12),
(select rental_id from car_rental.company where rental_id=2),
(select c_card from car_rental.customer where c_id=12),'ben-389'),

当我在MYSQL中运行这个时,它运行得非常好。但当我尝试在PhPMyAdmin中运行此程序时,它会出现错误。

我在这个网站上找到了各种解决方案,但所有的解决方案要么针对一张桌子,要么来自一张桌子。但没有适合我要找的类型。

很抱歉,如果是转发。

仅使用insert . . . select:

INSERT INTO CAR_RENTAL.billing(NO_OF_DAYS, BILL_DATE, DAILY_RENT, ADVANCE, C_NAME, RENTAL_ID, C_CARD, VIN)
    select 7, '2016-01-12', 500, 1000, c.c_name, co.rental_id, c.c_card, 'aud-890'
    from car_rental.customer c cross join
         car_rental.company co
    where c.c_id = 11 and co.rental_id = 1;

您可以在一个查询中同时执行这两项操作,作为;

INSERT INTO CAR_RENTAL.billing(NO_OF_DAYS, BILL_DATE, DAILY_RENT, ADVANCE, C_NAME, RENTAL_ID, C_CARD, VIN)
    select 7, '2016-01-12', 500, 1000, c.c_name, co.rental_id, c.c_card, 
           (case when c.c_id = 11 then 'aud-890' else 'ben-389' end)
    from car_rental.customer c cross join
         car_rental.company co
    where (c.c_id = 11 and co.rental_id = 1) or
          (c.c_id = 12 and co.rental_id = 2)