繁体   English   中英

使用两个内部联接表

[英]Using two inner join tables

我提出了两个查询,都在两个不同的表上使用内部联接。

查询1

SELECT PRODUCTS.CODE, PRODUCTS.REFERENCE, PRODUCTS.TAXCAT, PRODUCTS.DISPLAY,PRODUCTS.NAME, PRODUCTS.PRICEBUY, PRODUCTS.PRICESELL, CATEGORIES.NAME AS CATEGORY
FROM PRODUCTS INNER JOIN CATEGORIES ON PRODUCTS.CATEGORY = CATEGORIES.ID;

查询2

SELECT PRODUCTS.CODE, PRODUCTS.REFERENCE, PRODUCTS.TAXCAT, PRODUCTS.DISPLAY,PRODUCTS.NAME, PRODUCTS.PRICEBUY, PRODUCTS.PRICESELL,STOCKCURRENT.UNITS AS UNIT FROM PRODUCTS INNER JOIN STOCKCURRENT ON STOCKCURRENT.PRODUCT = PRODUCTS.ID;

当我尝试同时使用两个内部联接时,两个查询都可以正常运行,但会出错。 这就是我自己想出的。 我在理解实现此目的的语法时遇到了麻烦。

SELECT PRODUCTS.CODE, PRODUCTS.REFERENCE, PRODUCTS.TAXCAT,
PRODUCTS.DISPLAY,PRODUCTS.NAME, PRODUCTS.PRICEBUY,
PRODUCTS.PRICESELL,STOCKCURRENT.UNITS AS UNIT FROM PRODUCTS INNER JOIN
STOCKCURRENT ON STOCKCURRENT.PRODUCT = PRODUCTS.ID, CATEGORIES.NAME AS
CATEGORY FROM PRODUCTS INNER JOIN CATEGORIES ON PRODUCTS.CATEGORY =
CATEGORIES.ID;

谢谢。

您尝试查询的语法有几个问题。 假设您只想将三个表连接在一起,则可以尝试以下查询:

SELECT
    p.CODE,
    p.REFERENCE,
    p.TAXCAT,
    p.DISPLAY,
    p.NAME,
    p.PRICEBUY,
    p.PRICESELL,
    s.UNITS AS UNIT,
    c.NAME AS CATEGORY
FROM PRODUCTS p
INNER JOIN STOCKCURRENT s
    ON s.PRODUCT = p.ID
INNER JOIN CATEGORIES c
    ON p.CATEGORY = c.ID;

请注意,我在这里介绍了表别名 这些别名可以在查询的其他地方使用,以避免重复整个表名。

顺便说一下,我还可以看到对您的两个原始查询进行了合并。 但是由于没有预期的输出,因此尚不清楚您想要什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM