从三个表中选择没有where或on子句

时间:2016-08-19 12:28:30

标签: mysql

我有三张表,我想从中显示一些信息。问题是其中一个ps_mycase_output_design没有与其他人连接。 我想要的只是能够显示所有这些信息。我不需要通过ID,...或WHERE条款等查询。这是我从哪里开始但我已经

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY mycase.key_product_output DESC LIMIT 10' at line 13

这是简单的查询

SELECT customer.*, mycase.*, orders.*

FROM
    ps_customer customer
LEFT JOIN 
    ps_orders orders
LEFT JOIN
 ps_mycase_output_design mycase 
ORDER BY mycase.key_product_output DESC LIMIT 10

2 个答案:

答案 0 :(得分:3)

如果您不想使用ON或WHERE子句,请尝试:

SELECT customer.*, mycase.*, orders.*
FROM
    ps_customer customer,ps_orders orders,ps_mycase_output_design mycase 
ORDER BY mycase.key_product_output DESC LIMIT 10

不确定这是否是您需要的逻辑。

答案 1 :(得分:2)

您可以使用joininner join而不使用on子句(甚至以逗号分隔的表名列表)来创建笛卡尔联接(表A中的每条记录都会连接到每条记录来自表B)。我更喜欢使用join而不使用on,因为联接和逗号具有不同的运算符优先级:

SELECT customer.*, mycase.*, orders.*

FROM
    ps_customer customer
JOIN 
    ps_orders orders
JOIN
 ps_mycase_output_design mycase 
ORDER BY mycase.key_product_output DESC LIMIT 10

但是,我认为客户和订单表之间应该存在连接。由于您没有说明此类连接,我没有包含on子句。