Php 从多个表中选择并在一个表上写入

Php 从多个表中选择并在一个表上写入,php,mysql,Php,Mysql,我想从多个表中选择并在一个表上写入: INSERT INTO interest_area (category_id, user_id) SELECT category_id FROM category WHERE category_name = 'HTML' UNION ALL SELECT user_id FROM users WHERE first_name = 'Memar'; 但无法写入。将查询更改为 I

我想从多个表中选择并在一个表上写入:

INSERT INTO interest_area (category_id, user_id)
        SELECT category_id FROM category
        WHERE category_name = 'HTML' 
        UNION ALL
        SELECT user_id FROM users
        WHERE first_name = 'Memar';

但无法写入。

将查询更改为

INSERT INTO interest_area (category_id, user_id)
    SELECT category_id,user_id FROM category c,users u
    WHERE c.category_name = 'HTML' and u.first_name = 'Memar';

表类别和用户由某些列关联?UNION不是正确的方法,因为这样会将两个表的行添加到一起。您可能希望使用两个表的联接,因为您希望从列创建新行。您需要一个列,通过该列可以获得类别和用户之间的连接。@Fuzzzzel看起来这个表就是创建类别和用户之间连接的。上面的查询旨在说明用户Memar对类别HTML感兴趣。这是一个交叉连接,因此不需要任何关系。好的,那么只在这两个条件下连接是有意义的。请在回答中使用ANSI连接语法。我们不喜欢推广过时的语法。