首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL子查询语法+ ZF2语法

MySQL子查询语法+ ZF2语法
EN

Stack Overflow用户
提问于 2016-05-25 21:57:39
回答 1查看 36关注 0票数 0

我有一个包含10k+行的足球数据库。我的目标是根据他的id选择一个球员,并获得所有其他球员,这些球员在相同的联赛或俱乐部或具有相同的国籍。到目前为止,我的查询如下:

代码语言:javascript
复制
 SELECT * 
 FROM  `characteristics` 
 WHERE `nation` = (SELECT `nation` 
                   FROM `characteristics` 
                   WHERE `id` = "1") 
 OR    `club`   = (SELECT `club` 
                   FROM `characteristics` 
                   WHERE `id` = "1") 
 OR   `league`  = (SELECT `league` 
                   FROM `characteristics` 
                   WHERE `id` = "1")

我认为查询没有像我预期的那样工作,因为它将返回1434行。例如:Nation = ArgentinaLeague = BBVAClub = FC Barcelona将一起返回一些关于1500+行的信息。

也许你们可以帮助我实现这个子查询。

另一个问题是ZF2中的子查询语法。我在stackoverflow上找到了一些东西,但是我不知道把东西放在哪里的语法。

编辑:数据库数据示例

代码语言:javascript
复制
id  firstname lastname age height nation     club          league
1   Lionel    Messi    28  170 cm Argentina  FC Barcelona  Liga BBVA
EN

回答 1

Stack Overflow用户

发布于 2016-05-25 22:30:27

我不能回答关于ZF2的问题,因为我不会使用它。

对于您的SQL问题,我认为您正在寻找以下内容:

代码语言:javascript
复制
SELECT C1.`id` as playerid, 
       C1.firstname as playerfirstname, 
       C1.lastname as playerlastname, 
       C2.* 
FROM  `characteristics` C1
INNER JOIN `characteristics` C2 
   ON ( C1.`nation` = C2.`nation` OR 
        C1.`club`   = C2.`club`   OR
        C1.`league` = C2.`league` )
WHERE C1.`id` = "1"

我们的想法是从characteristics (别名C1)检索播放器,然后在您指定的列上再次联接表characteristics (别名C2)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37439405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档