原来的表查询:sql = "SELECT dutswitch.DID, dutswitch.\"CustomerLotID\", dutswitch.\"state\",dutbin.PGM, dutbin.\"Pgm version\",dutswitch.\"status1\", dutswitch.\"status2\", dutbin.BIN, dutbin.TESTITEM FROM dutswitch,dutbin WHERE
dutbin.CUSTOMERLOTID=dutswitch.\"CustomerLotID\" and dutbin.STATE = dutswitch.\"state\" and dutswitch.DID=$id";
现在情况有变,原switch表不变。有唯一的Customerlotid,不仅存在dutbin表内,而是出现在dutbin,a,b,c,d五个表中的任何一个表中(dutswith表中的Customerlotid和其他表中的Customerlotid一一对应)。请问这样的sql连表查询语句怎么写?
dutbin.CUSTOMERLOTID=dutswitch.\"CustomerLotID\" and dutbin.STATE = dutswitch.\"state\" and dutswitch.DID=$id";
现在情况有变,原switch表不变。有唯一的Customerlotid,不仅存在dutbin表内,而是出现在dutbin,a,b,c,d五个表中的任何一个表中(dutswith表中的Customerlotid和其他表中的Customerlotid一一对应)。请问这样的sql连表查询语句怎么写?
SELECT DUTSWITCH.DID,
DUTSWITCH.CUSTOMERLOTID,
DUTSWITCH.STATE,
DUTBIN.PGM,
DUTBIN.PGM VERSION,
DUTSWITCH.STATUS1,
DUTSWITCH.STATUS2,
DUTBIN.BIN,
DUTBIN.TESTITEM
FROM DUTSWITCH,
(SELECT *
FROM DUTBIN
UNION ALL
SELECT *
FROM A
UNION ALL
SELECT *
FROM B
UNION ALL
SELECT *
FROM C
UNION ALL
SELECT * FROM D) DUTBIN
WHERE DUTBIN.CUSTOMERLOTID = DUTSWITCH.CUSTOMERLOTID
AND DUTBIN.STATE = DUTSWITCH.STATE
AND DUTSWITCH.DID = $ID
sql = "SELECT dutswitch.DID, dutswitch.\"CustomerLotID\", dutswitch.\"state\",a.PGM, a.\"Pgm version\",dutswitch.\"status1\", dutswitch.\"status2\", a.BIN, a.TESTITEM FROM dutswitch,dutbin WHERE
a.CUSTOMERLOTID=dutswitch.\"CustomerLotID\" and a.STATE = dutswitch.\"state\" and dutswitch.DID=$id";我是想达到这种效果。
(SELECT * FROM DUTBIN
UNION ALL
SELECT *FROM A
UNION ALL SELECT *
FROM B UNION ALL
SELECT * FROM C
UNION ALL
SELECT * FROM D) DUTBIN 中有了5个表的数据。然后再通过customerlotid进行匹配。只是联合表的名与物理表DUTBIN重名了,会带来误解吧。