假设我的数据库中有两个表。 person
以及 person_purchased_item
.
人
id name has_purchased
1 Joe 1
2 Mark 0
3 Harry 0
4 Norly 1
5 Freya 0
购买物品的人
id person_id item_code
1 1 1001
2 1 1002
3 1 1003
4 1 1004
5 4 1005
在这种情况下,我想得到一个特定的人购买的物品,并查询那些从未购买过任何物品的人。
案例1
查询:
SELECT
person.id, person.name, person_purchased_item.item_code
FROM person INNER JOIN person_purchased_item
ON person.id = person_purchased_item.person_id
WHERE has_purchased = 1 AND id = 1;
结果:
id name item_code
1 Joe 1001
1 Joe 1002
1 Joe 1003
1 Joe 1004
案例2
查询:
SELECT * FROM person WHERE has_purchased <> 1;
结果:
id name has_purchased
2 Mark 0
3 Harry 0
5 Freya 0
现在问题来了:
如何编写一个查询,将所有joe购买的商品插入到每个从未购买过商品的人身上?所以他们每个人都有乔买的东西。
1条答案
按热度按时间ars1skjm1#
插入joe的购买记录与所有尚未购买的人的交叉连接: