如何在INSERT查询中使用JOIN?

时间:2016-05-02 05:42:04

标签: php mysql sql pdo

我有这个问题:

INSERT INTO table1 (col1)
SELECT :val
FROM table2 t2
WHERE t2.id = :id limit 1;

此查询检查t2.id = :id是否为真,然后插入。现在我也要检查table3.id = :id。我想在这种情况下我必须使用JOIN。我怎么能这样做?

我传递这样的参数:

$stm->bindValue(":val", $value, PDO::PARAM_STR);
$stm->bindValue(":id", $id, PDO::PARAM_INT);

注意:我知道我可以通过FK做到这一点。但我不想要那个。

2 个答案:

答案 0 :(得分:1)

试试这个

INSERT INTO table1 (col1)
SELECT :val
FROM table2 t2, table3 t3
WHERE t2.id = :id and t3.id = :id limit 1;

答案 1 :(得分:1)

insert into table_name object
INNER JOIN table_2 object2 ON object2.attribute = object2.attribute
(object2.attribute1, object2.attribute2, object.attribute1, object.attribute2) 
values
('somevalue', 'somevalue', 'somevalue', 'somevalue')