简体   繁体   English

使用两个内部联接表

[英]Using two inner join tables

I have come up with two queries, both use an inner join on two different tables. 我提出了两个查询,都在两个不同的表上使用内部联接。

Query 1 查询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;

Query 2 查询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;

Both queries run fine on their own, when I try to use both inner joins together I get errors. 当我尝试同时使用两个内部联接时,两个查询都可以正常运行,但会出错。 This is what I came up with on my own. 这就是我自己想出的。 I'm having trouble understanding the syntax to achieve this. 我在理解实现此目的的语法时遇到了麻烦。

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;

Thank you. 谢谢。

Your attempted query has several syntax problems. 您尝试查询的语法有几个问题。 Assuming you just want to join together the three tables, you may try the following query: 假设您只想将三个表连接在一起,则可以尝试以下查询:

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;

Note that I introduced table aliases here. 请注意,我在这里介绍了表别名 These aliases can be used elsewhere in the query to avoid having to repeat the entire table name. 这些别名可以在查询的其他地方使用,以避免重复整个表名。

By the way, I can also see taking a union of your two original queries. 顺便说一下,我还可以看到对您的两个原始查询进行了合并。 But without expected output, it was not entirely clear what you want. 但是由于没有预期的输出,因此尚不清楚您想要什么。

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

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