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

时间:2017-12-20 15:05:30

标签: sql asp-classic

enter image description here我有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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

如果由于其他表格中有更多匹配项而获得更多行,则需要考虑添加更多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