【问题标题】:Return SQL subquery as boolean field?将 SQL 子查询作为布尔字段返回?
【发布时间】:2012-04-01 04:19:37
【问题描述】:

我想做这样的事情(sql 与伪代码的混合):

让我们假设这个例子有一个单独的电话号码表:

人员: person_id、person_name、person_lastName
phone_number: phonenmb_id、phonenmb_number、phonenmb_person_id

SELECT p.name, p.lastName, hasPhoneNumber = hasPhoneNumber(someNumber)

在示例中,我想从一个人那里获取一些数据,并给定一个特定的电话号码,如果该人的号码列表中有该号码,则返回 TRUE,否则返回 FALSE。

如果有人可以提供有关如何直接使用 Doctrine 和 DQL 执行此操作的提示,那就太好了,否则我将自己将其翻译成 DQL。

【问题讨论】:

  • 如果我添加要添加示例数据,我将不得不放入大量数据......因为我的情况比这复杂得多。它涉及 4 或 5 个表......我只想知道如果一个 id 在另一组 id 中退出,如何返回一个具有 true 或 false 的变量

标签: mysql doctrine-orm boolean


【解决方案1】:

一种方法是使用 person_id 和电话号码外连接到电话号码表,然后检查是否满足外连接来计算布尔值。

使用您的架构的示例:

SELECT p.person_name, p.person_lastName, 
  (pn.phonenmb_id IS NOT NULL) as hasPhoneNumber
FROM person p
  LEFT OUTER JOIN phone_number pn on pn.phonenmb_person_id = p.person_id 
                                 and pn.phonenmb_number = someNumber
GROUP BY p.person_name, p.person_lastName

【讨论】:

  • 谢谢!我下班回家后会试试这个,我会告诉你的
猜你喜欢
  • 1970-01-01
  • 2012-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多