Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MS Access SQL查询中存储在表列中的通配符_Sql_Ms Access - Fatal编程技术网

使用MS Access SQL查询中存储在表列中的通配符

使用MS Access SQL查询中存储在表列中的通配符,sql,ms-access,Sql,Ms Access,我想在Access中基于不同行的不同通配符连接两个表 第一个table1包含具有不同通配符的行,table2包含应与table1中的通配符匹配的列 我想象SQL代码如下所示: SELECT * FROM table2 LEFT JOIN table1 ON table2.subject LIKE table1.wildcard 这些表如下所示: 第三张图片显示了我想要的结果 我该如何执行join或者是否有其他选择?我认为MySQL不支持joins的非相等条件。因此,您可以这样做: SEL

我想在Access中基于不同行的不同通配符连接两个表

第一个
table1
包含具有不同通配符的行,
table2
包含应与
table1
中的通配符匹配的列

我想象SQL代码如下所示:

SELECT * 
FROM table2 
LEFT JOIN table1 
ON table2.subject LIKE table1.wildcard
这些表如下所示:

第三张图片显示了我想要的结果


我该如何执行join或者是否有其他选择?

我认为MySQL不支持
join
s的非相等条件。因此,您可以这样做:

SELECT *                  -- first get the matches
FROM table2 as t2,        -- ugg, why doesn't it support CROSS JOIN
     table1 as t1
WHERE t2.subject LIKE t1.wildcard
UNION ALL
SELECT *                  -- then get the non-matches
FROM table2 as t2 LEFT JOIN  
     table1 as t1
     ON 1 = 0             -- always false but gets the same columns
WHERE NOT EXISTS (SELECT 1
                  FROM table1 as t1
                  WHERE t2.subject LIKE t1.wildcard
                 );

伟大的这行吗?你有什么问题?