我有这张桌子
文章
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/