我有这张桌子

文章

article_id

文章名
article_qty
article_price
article_amount

订单

orders_id
article_id
发票编号
客户ID

顾客

customer_id
顾客姓名
客户位置
客户办公室

客户发票

当我做这样的事情

$sql="SELECT customer_name, article_name FROM orders LEFT JOIN articles ON article_id = articles_id LEFT JOIN customers on customer_id = customers_id";


它不会得到任何结果,在一个查询中保留这两个表的正确方法是什么?

我用CI
像这样

$this->db->query($sql);


我得到了我这个

object(CI_DB_mysql_result)#28 (8) { ["conn_id"]=> resource(31) of type (mysql link persistent) ["result_id"]=> resource(52) of type (mysql result) ["result_array"]=> array(0) { } ["result_object"]=> array(0) { } ["custom_result_object"]=> array(0) { } ["current_row"]=> int(0) ["num_rows"]=> int(2) ["row_data"]=> NULL }

最佳答案

您需要为使用的任何表联接指定别名,如下所示:

$sql="SELECT c.customer_name, a.article_name FROM orders o
LEFT JOIN articles a ON o.article_id = a.articles_id
LEFT JOIN customers c on o.customer_id = c.customers_id";


或者您可以使用如下USING语法:

$sql="SELECT c.customer_name, a.article_name FROM orders o
LEFT JOIN articles a ON USING(articles_id)
LEFT JOIN customers c on USING(customer_id);

关于mysql - 编写Mysql Left join不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25962034/

10-10 16:28