Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我正面临左联的问题_Mysql_Left Join - Fatal编程技术网

Mysql 我正面临左联的问题

Mysql 我正面临左联的问题,mysql,left-join,Mysql,Left Join,问题1: SELECT b.id, b.bid, b.productname, b.brandname, b.producttype, b.sku, b.cat_id, b.brandname, b.costprice, b.pweight, b.monthly, b.discountcodes, b.seller_id FROM `buyde_product` b where b.sku in ( SELECT buyde_new_new_sku.sku FROM buyde_new_n

问题1:

SELECT b.id,
b.bid,
b.productname,
b.brandname, 
b.producttype, b.sku,
b.cat_id,
b.brandname,
b.costprice,
b.pweight,
b.monthly,
b.discountcodes, 
b.seller_id FROM `buyde_product` b 
where b.sku in ( SELECT buyde_new_new_sku.sku FROM buyde_new_new INNER JOIN buyde_new_new_sku ON buyde_new_new.cat_id = buyde_new_new_sku.cat_id)
最初,我写了上面的查询,因为那个时候我只需要上面的细节 现在我想从buyde_brand表中再添加一个细节,所以我想使用Left Join和Lower查询,但在PHPMyAdmin中尝试时出现了一个错误

谁能看到我的代码,我错在哪里

SELECT b.id,
    b.bid,
    b.productname,
    b.producttype, b.sku,
    b.cat_id,
    b.brandname,
    b.costprice,
    b.pweight,
    b.monthly,
    ba.brandname, 
    ba.bid,
    b.discountcodes, 
    b.seller_id FROM `buyde_product` b 
    where b.sku in ( SELECT buyde_new_new_sku.sku FROM buyde_new_new INNER 
JOIN buyde_new_new_sku ON buyde_new_new.cat_id = buyde_new_new_sku.cat_id)

LEFT JOIN `buyde_brand` ba 
ON b.bid = ba.bid
错误:在phpmyadmin中

1064-您的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,了解使用“LEFT JOIN buyde_品牌ba”的正确语法 b.bid=ba.bid限值0,第16行25'`

更新:选择b.id、b.bid、b.productname、b.producttype、b.sku、b.cat_id、b.brandname、b.costprice、b.pweight、b.monthly、b.brandname、b.bid、b.discountcodes、b.seller_id from Buyde_productb LEFT JOINbuyde_brandba ON b.bid=ba.bid

如果我通过删除

其中,b.sku in选择buyde_new_new_sku.sku FROM buyde_new_new INNER 在buyde_new_new.cat_id=buyde_new_new_sku.cat_id上加入buyde_new_新sku

这部分然后运行,但我需要首先根据此条件获取,然后想添加buyde_brand的出价

您在查询的条件WHERE之后设置了左连接。您必须在查询的表部分设置左联接。见下文:

SELECT 
    b.id,
    b.bid,
    b.productname,
    b.producttype, b.sku,
    b.cat_id,
    b.brandname,
    b.costprice,
    b.pweight,
    b.monthly,
    ba.brandname, 
    ba.bid,
    b.discountcodes, 
    b.seller_id 
FROM `buyde_product` b LEFT JOIN `buyde_brand` ba ON b.bid = ba.bid
WHERE b.sku IN (
    SELECT buyde_new_new_sku.sku 
    FROM buyde_new_new INNER JOIN buyde_new_new_sku ON buyde_new_new.cat_id = buyde_new_new_sku.cat_id
)

此查询还应适合您的新需求,首先筛选buyde_产品表,然后在此筛选表上保留联接。结果应该与此解决方案相同。另一种解决方案是将原始查询放入子选择,并在此子选择上左连接。

您的SQL语法错误;正确的顺序是SELECT-FROM-JOIN-WHERE-GROUP BY-order BY。 在查询中,在WHERE子句之后放置了LEFT JOIN,这是不正确的。 你应该这样写:

SELECT b.id,
    b.bid,
    b.productname,
    b.producttype, b.sku,
    b.cat_id,
    b.brandname,
    b.costprice,
    b.pweight,
    b.monthly,
    ba.brandname, 
    ba.bid,
    b.discountcodes, 
    b.seller_id
FROM `buyde_product` b 
LEFT JOIN `buyde_brand` ba 
ON b.bid = ba.bid
    where b.sku in ( SELECT buyde_new_new_sku.sku FROM buyde_new_new INNER 
JOIN buyde_new_new_sku ON buyde_new_new.cat_id = buyde_new_new_sku.cat_id)

您的联接应该在筛选器之前。将连接移动到where b.sku之前。在buyde_产品b@Rob和Sebastain Bosch之后设置左连接,谢谢,我明白了。