Where-clause与左连接表

时间:2016-06-13 08:26:52

标签: php mysql

我有两个表:products和products_actions。

当用户点击产品时,我希望将此操作存储在products_actions中。字段has_removed将为1。

我想向用户展示他没有点击过的那些产品。

目前我的表格中有以下条目:

表“产品”:

id: 1
name: Product 1

id: 2
name: Product 2

id: 3 
name: Product 3

表“products_actions”:

id: 1 
id_product: 2
has_removed: 1

如果用户目前尚未从其页面中删除产品,则products_actions表中将没有相应的条目。

所以我的查询是:

$qb->select('p')
            ->leftJoin(
                'ProductsActions',
                'pa',
                'WITH',
                'pa.idProduct = p.id'
            ) 
            ->where('pa.hasRemoved != 1');

如何实现我的查询上面提供“产品1”和“产品3”作为条目?

1 个答案:

答案 0 :(得分:2)

我并不完全清楚你需要什么。我猜你说的可能是这样的:

select * from products where id not in (select id_product from products_actions where hasRemoved = 1)