Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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
Mysql 从';存在';陈述_Mysql_Sql_Select_Exists - Fatal编程技术网

Mysql 从';存在';陈述

Mysql 从';存在';陈述,mysql,sql,select,exists,Mysql,Sql,Select,Exists,我有以下sql查询 SELECT Store.* FROM Store WHERE EXISTS ( SELECT Contest.StoreID .....) OR EXISTS ( SELECT Discount.StoreID .....) 我的问题是,我想在结果中包括竞赛和折扣数组中的一些列。如果我从在上加入它们,它会起作用,但是有没有办法从存在的中获取值?像这样的 SELECT Store.*, t1.something, t2.somethingElse FROM

我有以下sql查询

SELECT Store.*
FROM Store
WHERE EXISTS (
    SELECT Contest.StoreID .....) 
OR EXISTS (
    SELECT Discount.StoreID .....)
我的问题是,我想在结果中包括竞赛和折扣数组中的一些列。如果我从在
上加入它们,它会起作用,但是有没有办法从
存在的
中获取值?像这样的

SELECT Store.*, t1.something, t2.somethingElse
FROM Store
WHERE EXISTS (
    SELECT Contest.StoreID .....) t1 
OR EXISTS (
    SELECT Discount.StoreID .....) t2

,不可能从
WHERE
子句中进行选择,请考虑一下,如果该子句用于过滤,请选择它

有两种方法可以同时从不同的表中选择数据,一种是
子查询
,另一种是
联接

下面是一个
JOIN
示例:

SELECT s.*, t1.something, t2.somethingElse
FROM Store s
LEFT OUTER JOIN Contest t1 ON(...)
LEFT OUTER JOIN Discount t2 ON(...)
WHERE t1.<column> is not null OR t2.<column> is not null

不,这是不可能的。您必须
连接表
才能访问表中的字段。绝对不能。没有数据通过where子句交换回查询。表不是数组:)对于经验不足的用户来说,连接可能是最简单的方法。我知道,但如果他已经熟悉连接,他应该扩展知识@Wh1T3h4Ck5
SELECT * FROM (
    SELECT s.*,
           (SELECT t1.something FROM contest t1 WHERE t1.<col> = s.<col>) as col1,                       
           (SELECT t1.something FROM contest t1 WHERE t1.<col> = s.<col>) as col2, 
    FROM Store s) t
WHERE t.col1 is not null or t.col2 is not null