我有这个问题:
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做到这一点。但我不想要那个。
答案 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')