我有三张桌子
order (customerID, productID)
product (productID, prodName, classID)
classification (classID, className)我要找prodName和className customerID=5555
SELECT prodName FROM product AND className FROM classification
LEFT JOIN order
WHERE order.customerID=12345不起作用了,我想我可能是来错桌了。怎么了?谢谢一堆。
发布于 2015-03-25 19:41:31
您需要指定连接所在的字段,如下所示:
SELECT prodName FROM product AND className
FROM classification
LEFT JOIN order
ON classification.productID = order.productID
WHERE order.customerID=12345发布于 2015-03-25 19:42:59
你的语法有点不正确;
SELECT
prodName
FROM
product
,classification LEFT JOIN order ON(classification.classID = order.classID)
WHERE
order.customerID = 12345
and order.productID = product.productID会返回你的产品名。老实说,我不知道你为什么要在这里左转,你从来不做任何事情。左联接将返回分类中的所有记录,并且只返回来自Order的匹配记录。如果没有没有意义的左联接,下面的人也会做同样的事情。
SELECT
prodName
FROM
product
,classification
,order
WHERE
order.customerID = 12345
AND order.classID = classification.classID
AND order.productID = product.productID事实上,我看到加入分类表的唯一原因是确保订单有一个有效的分类,无论如何,您都应该在记录的创建过程中验证这个分类。你可能需要重新考虑一下你想在这里完成什么。
发布于 2015-03-25 19:41:26
见关于W3Schools的本教程。您的SQL语法不正确。它应该看起来更像:
SELECT prodName, className
FROM product
LEFT JOIN order ON order.productID = product.productID
WHERE order.customerID = 12345https://stackoverflow.com/questions/29264930
复制相似问题