首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接/搜索3个表

连接/搜索3个表
EN

Stack Overflow用户
提问于 2015-03-25 19:35:39
回答 3查看 38关注 0票数 0

我有三张桌子

代码语言:javascript
复制
order (customerID, productID)
product (productID, prodName, classID)
classification (classID, className)

我要找prodName和className customerID=5555

代码语言:javascript
复制
SELECT prodName FROM product AND className FROM classification
LEFT JOIN order
WHERE order.customerID=12345

不起作用了,我想我可能是来错桌了。怎么了?谢谢一堆。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-25 19:41:31

您需要指定连接所在的字段,如下所示:

代码语言:javascript
复制
SELECT prodName FROM product AND className 
FROM classification
LEFT JOIN order
ON classification.productID = order.productID
WHERE order.customerID=12345
票数 2
EN

Stack Overflow用户

发布于 2015-03-25 19:42:59

你的语法有点不正确;

代码语言:javascript
复制
SELECT
   prodName
FROM
   product
   ,classification LEFT JOIN order ON(classification.classID = order.classID)
WHERE
   order.customerID = 12345
   and order.productID = product.productID

会返回你的产品名。老实说,我不知道你为什么要在这里左转,你从来不做任何事情。左联接将返回分类中的所有记录,并且只返回来自Order的匹配记录。如果没有没有意义的左联接,下面的人也会做同样的事情。

代码语言:javascript
复制
SELECT
    prodName
FROM
    product
    ,classification
    ,order
WHERE
    order.customerID = 12345
    AND order.classID = classification.classID
    AND order.productID = product.productID

事实上,我看到加入分类表的唯一原因是确保订单有一个有效的分类,无论如何,您都应该在记录的创建过程中验证这个分类。你可能需要重新考虑一下你想在这里完成什么。

票数 2
EN

Stack Overflow用户

发布于 2015-03-25 19:41:26

关于W3Schools的本教程。您的SQL语法不正确。它应该看起来更像:

代码语言:javascript
复制
SELECT prodName, className
FROM product
LEFT JOIN order ON order.productID = product.productID
WHERE order.customerID = 12345
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29264930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档