Mysql 从';存在';陈述
我有以下sql查询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
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