SQL 循环查询语法(经典ASP)

SQL query syntax for loop (Classic ASP)

我有 4 个表和以下 SQL 查询:

SELECT * FROM dbo.Synola, dbo.Stores, dbo.Fpa, dbo.Nomismata
WHERE
dbo.Stores.Store_id = dbo.Synola.Store_id
AND
dbo.Stores.fpa_id = dbo.Fpa.fpa_id
AND
dbo.Stores.nomisma_id = dbo.Nomismata.nomisma_id

以上工作正常,没有错误。

我的问题是,当我尝试 循环 上述查询时:

目前,在我的商店 TABLE 中,我只有 2 家商店,我希望在循环中获得结果 ONLY 2条记录。我的 2 家商店的 2 条记录。但不幸的是,我收到了超过 2 条记录。

在循环中仅接收我的 2 家商店 的结果的正确查询语法是什么?

这应该只检索所有 table 中可用的数据。因此,如果与主 Stores table 不匹配,则结果不会显示。

SELECT *
FROM Stores s
JOIN Synola sy ON sy.Store_id = s.Store_id
JOIN Fpa f ON f.fpa_id = s.fpa_id
JOIN Nomismata n ON n.nomisma_id = s.nomisma_id

如果您因为其他 table 中有更多匹配项而获得更多行,那么您需要考虑添加更多 WHERE 条件或使用另一种类型的 JOIN

更多信息:https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins

编辑:查看您在 JOIN 上获得多个匹配项的位置:

SELECT s.Store_id "Store_id from Store",
    ,sy.Store_id "Store_id from Synola"
    ,s.fpa_id "fpa_id from Store"
    ,f.fpa_id "fpa_id from Fpa"
    ,s.nonisma_id "nomisma_id from Store"   
    ,n.nonisma_id "nomisma_id from Nomismata"
FROM Stores s
JOIN Synola sy ON sy.Store_id = s.Store_id
JOIN Fpa f ON f.fpa_id = s.fpa_id
JOIN Nomismata n ON n.nomisma_id = s.nomisma_id