违反完整性约束:如何连接两个表

时间:2017-09-22 08:01:22

标签: php mysql join

我正在为laravel的学校项目制作一个程序,所以我尝试加入两个表:产品和目的地

表Product有列:id,name

Destinations表包含以下列:目标:id,product_id,destination,quantity,target_person

我需要加入product_idid

products = DB::table('products')
    ->leftJoin('destinations','id','=','destinations.product_id ')
    ->get();

但是当我尝试使用LEFT JOIN时,我收到以下错误:

  

SQLSTATE [23000]:完整性约束违规:1052列' id' on on子句是不明确的(SQL:select * from products inner join destinations on id = destinationsproduct_id

2 个答案:

答案 0 :(得分:4)

使用表格参考products.id

products = DB::table('products')
    ->leftJoin('destinations','products.id','=','destinations.product_id')
    ->get();

答案 1 :(得分:2)

是因为它不知道是否' id'是指产品或目的地中的那个。 试试这个:

$mail->Body    =<<<MSG
        <html>
            <head>
                <title>Statistics</title>
            </head>
            <body>
                The start was: {$start} </br></br>
                The end was: {$end} </br></br>   

                foreach ($events as $event)
                { 
                    echo '<tr>';
                    echo '<td>' . $event)[1] . '</td>';
                    echo '<td>' . $event)[2] . '</td>';
                    echo '<td>' . $event)[3] . '</td>';
                    echo '</tr>';
                }

            </body>
        </html>
MSG;