Mysql SQL中的左连接与内部连接

Mysql SQL中的左连接与内部连接,mysql,sql,Mysql,Sql,我有一个问题需要解决:我有三个表与内部联接联接。然而,在这个名为products、shopping cart、purchase的三个表中,我需要做一个左连接,以获得尚未在商店系统中购买的用户列表 为此,我尝试在entity products->shopping cart中进行左连接,然后尝试内部连接购买和购物车 结果如何?系统不会忽略该请求 我的目标是在给定的时间间隔内返回用户购买的所有商品,而不是事实 为方便起见,我附上一份数据库副本和照片 SELECT prodotti.nome_prodo

我有一个问题需要解决:我有三个表与内部联接联接。然而,在这个名为products、shopping cart、purchase的三个表中,我需要做一个左连接,以获得尚未在商店系统中购买的用户列表

为此,我尝试在entity products->shopping cart中进行左连接,然后尝试内部连接购买和购物车

结果如何?系统不会忽略该请求

我的目标是在给定的时间间隔内返回用户购买的所有商品,而不是事实

为方便起见,我附上一份数据库副本和照片

SELECT prodotti.nome_prodotto, carrello.quantita, acquisto.data_acquisto
FROM    (   subquery.prodotti prodotti
LEFT JOIN subquery.carrello carrello
    ON (prodotti.id_prodotto = carrello.id_prodotto))
        JOIN subquery.acquisto acquisto
        ON (acquisto.id_acquisto = carrello.id_acquisto)
我尝试过以下解决方案:

SELECT prodotti.nome_prodotto, acquisto.data_acquisto, carrello.quantita   
FROM    ( prodotti 
            LEFT JOIN carrello 
            ON prodotti.id_prodotto = carrello.id_prodotto )        
INNER JOIN           acquisto 
    ON acquisto.id_acquisto = carrello.id_acquisto

但是什么都没有…我返回一个类似于内部联接的结果

附言:在那里你可以找到数据库和蟾蜍文件的副本

在所有内部连接之后,尝试执行左连接。

编辑:阅读您的评论后,我对问题有了更多的理解-听起来您似乎在尝试查看购物车中的项目数据,但在X个时间段内尚未购买

为此,请左键联接purchase表,然后使用WHERE子句将结果限制为特定的时间差。因为我们使用的是左联接,所以purchase表并不总是有一个值,因此在这种情况下,我们使用IFNULL来指定今天的数学日期。如果购物车中的商品仍然没有被购买,请计算它在购物车中的天数

SELECT /*products in cart*/
    prodotti.nome_prodotto
    ,carrello.quantita
FROM
    prodotti 
    INNER JOIN carrello 
        ON prodotti.id_prodotto = carrello.id_prodotto
    LEFT JOIN acquisto
        ON acquisto.id_prodotto = carrello.id_prodotto
WHERE
    /* show only items over a certain age - 5 days in this example */
    DATEDIFF((ifnull(acquisto.id_acquisto,NOW()) /* use today's date if purchase doesn't exist */
        - carrello.id_acquisto) > 5) 

我试过这个选择prodotti.nome\u prodotto,acquisto.data\u acquisto,carrello.quantita从acquisto内部加入carrello ON acquisto.id\u acquisto=carrello.id\u acquisto左加入prodotti.id\u prodottom=carrello.id\u prodottomm..我有三个表:产品、购物车、购买的。。。。我需要看看哪些元素在X天内买不到。我已经更新了一点响应,希望它能起到更多的帮助。
SELECT /*products in cart*/
    prodotti.nome_prodotto
    ,carrello.quantita
FROM
    prodotti 
    INNER JOIN carrello 
        ON prodotti.id_prodotto = carrello.id_prodotto
    LEFT JOIN acquisto
        ON acquisto.id_prodotto = carrello.id_prodotto
WHERE
    /* show only items over a certain age - 5 days in this example */
    DATEDIFF((ifnull(acquisto.id_acquisto,NOW()) /* use today's date if purchase doesn't exist */
        - carrello.id_acquisto) > 5)