如何根据另一个表的值查询一个表?

时间:2019-06-11 11:54:51

标签: php mysql

我有3个表,“用户”,“消息”,“队列”。

用户表由用户ID(“ ID”)和状态(“状态”)组成。

The "user" table

消息表由用户ID(“ id”)和消息(“ msg”)组成。

The "message" table

队列表是消息表的副本。

The "queue" table

我的代码只需要复制 message 表并将其粘贴到 queue 表中即可。

$query = "INSERT IGNORE INTO queue(id,msg) SELECT id,msg FROM message";
if ($DBcon->query($query)) {
    echo "Done";
} else {
    echo "Failed";
}

但是,仅当用户的状态设置为“ y” 时,我才想将行从消息表复制到队列表。

请帮助我。谢谢!

2 个答案:

答案 0 :(得分:2)

使用联接以及

INSERT IGNORE INTO queue(id,msg) 
SELECT id,msg 
FROM message
INNER JOIN user on user.id = message.id
WHERE user.status  = 'Y';

答案 1 :(得分:0)

尝试此查询

INSERT INTO queue (id, msg)
SELECT A.id, A.msg
FROM message A
JOIN users B
ON A.id=B.id
WHERE B.status= 'y';