Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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查询,选择2个数据库和4个表+;嵌套选择?_Mysql_Database_Nested - Fatal编程技术网

Mysql查询,选择2个数据库和4个表+;嵌套选择?

Mysql查询,选择2个数据库和4个表+;嵌套选择?,mysql,database,nested,Mysql,Database,Nested,这是我当前的查询: $sel = "SELECT db1t1.userid, db1t1.customer_id, db2t1.customers_id, db2t1.orders_id, db2t2.products_price FROM database1.table1 db1t1 LEFT JOIN database2.table1 db2t1 ON db1t1.customer_id = db2t1.cu

这是我当前的查询:

$sel = "SELECT 
        db1t1.userid, db1t1.customer_id, db2t1.customers_id, db2t1.orders_id, db2t2.products_price
    FROM 
        database1.table1 db1t1
        LEFT JOIN database2.table1 db2t1 ON
            db1t1.customer_id = db2t1.customers_id
        LEFT JOIN database2.table2 db2t2 ON
            db2t1.orders_id = db2t2.orders_id   
    WHERE db1t1.userid IN(
        SELECT 
            l.userid, l.username, r.username, r.cus_id 
        FROM 
            database1.table3 l
            LEFT JOIN database2.table4 r ON
                l.username = r.username
        WHERE r.cus_id = '1234'
        )";
错误消息:

操作数应包含1列


发生错误的原因是您向IN子句返回了包含多列的结果

试试这个:

SELECT 
    `db1t1`.`userid`, `db1t1`.`customer_id`, `db2t1`.`customers_id`,
    `db2t1`.`orders_id`, `db2t2`.`products_price`
FROM `database1`.`table1` AS `db1t1`
    LEFT JOIN `database2`.`table1` AS `db2t1` 
        USING (`customers_id`)
    LEFT JOIN `database2`.`table2` AS `db2t2`
        USING (`orders_id`)  
WHERE `db1t1`.`userid` IN (
    SELECT `l`.`userid`
    FROM `database1`.`table3` AS `l`
        LEFT JOIN `database2`.`table4` AS `r`
            USING (`username`)
    WHERE `r`.`cus_id` = 1234
)
你想达到什么目标?也许我们能找到更好的解决办法

此外,我认为应该在子查询中执行内部联接,而不是左联接