0

我有一个这样的查询:

SELECT
    t.transactID,
    t.TBarcode,
    l.LocName,
    v.Vtype,
    t.dtime,
    t.PlateNo,
    ps.PS,
    pc.PlateCode,
    p.COMMENTS
FROM dbo.PoliceRecord_tbl p
INNER JOIN dbo.Transaction_tbl t ON t.PSID = p.PSource AND t.PCdID = p.PSCode AND t.PlateNo = p.PNumber
JOIN dbo.Location_tbl l ON l.Locid = t.Locid
JOIN dbo.VType_tbl v ON v.vtid = t.vtid
JOIN dbo.PlateSource_tbl ps ON ps.PSID = t.PSID
JOIN dbo.PlateCode_tbl pc ON pc.PCdID = t.PCdID AND t.STATUS IN (0, 1)
    AND t.TBarcode NOT IN (
        SELECT TBarcode
        FROM dbo.EmailSendLog_tbl
    ) AND p.DELETED = 0
END

我的输出越来越正确: 在此处输入图像描述

但我还有一个表 EmailSubject_tbl 只包含一个字段在此处输入图像描述 我想在执行查询时也得到这个值:我的预期输出

Transactid  Tbarcode    Locname       Vtype    Dtime      PlateNo PS PlateCode Comments EmailSubject
3701      6191112123456 AddressHotel  Normal   2013-06-09  123456  Dubai  A     Test     PoliceRecord
4

3 回答 3

1

假设您的 EmailSubject 包含一条记录

SELECT
    t.transactID,
    t.TBarcode,
    l.LocName,
    v.Vtype,
    t.dtime,
    t.PlateNo,
    ps.PS,
    pc.PlateCode,
    p.COMMENTS,
    (select TOP 1 EmailSubject FROM EmailSubject_tbl ) AS EmailSubject
FROM dbo.PoliceRecord_tbl p
INNER JOIN dbo.Transaction_tbl t ON t.PSID = p.PSource AND t.PCdID = p.PSCode AND t.PlateNo = p.PNumber
JOIN dbo.Location_tbl l ON l.Locid = t.Locid
JOIN dbo.VType_tbl v ON v.vtid = t.vtid
JOIN dbo.PlateSource_tbl ps ON ps.PSID = t.PSID
JOIN dbo.PlateCode_tbl pc ON pc.PCdID = t.PCdID AND t.STATUS IN (0, 1)
    AND t.TBarcode NOT IN (
        SELECT TBarcode
        FROM dbo.EmailSendLog_tbl
    ) AND p.DELETED = 0
END
于 2013-08-21T09:13:16.770 回答
0

你可以cross join用来引入一个不相关的表:

SELECT
    ...
    p.COMMENTS,
    es.EmailSubject
FROM dbo.PoliceRecord_tbl p
....
CROSS JOIN dbo.EmailSubject_tbl es
...
于 2013-08-21T09:12:07.463 回答
-1

尝试这个

SELECT
    t.transactID,
    t.TBarcode,
    l.LocName,
    v.Vtype,
    t.dtime,
    t.PlateNo,
    ps.PS,
    pc.PlateCode,
    p.COMMENTS,
   e.EmailSubject
FROM dbo.PoliceRecord_tbl p, EmailSubject_tbl e
INNER JOIN dbo.Transaction_tbl t ON t.PSID = p.PSource AND t.PCdID = p.PSCode AND t.PlateNo = p.PNumber
JOIN dbo.Location_tbl l ON l.Locid = t.Locid
JOIN dbo.VType_tbl v ON v.vtid = t.vtid
JOIN dbo.PlateSource_tbl ps ON ps.PSID = t.PSID
JOIN dbo.PlateCode_tbl pc ON pc.PCdID = t.PCdID AND t.STATUS IN (0, 1)
    AND t.TBarcode NOT IN (
        SELECT TBarcode
        FROM dbo.EmailSendLog_tbl
    ) AND p.DELETED = 0
于 2013-08-21T09:12:19.663 回答