gpt4 book ai didi

mysql - 多个 ON WHERE SQL,无法让它工作

转载 作者:行者123 更新时间:2023-11-30 21:44:50 26 4
gpt4 key购买 nike

我正在尝试找出一种仅显示基于 DPA.value 的联系人详细信息的方法,因此可以根据 DPA 值从输出列表中排除联系人,如果 dpa 值等于 5,则排除联系人。排除电子邮件地址,如果DPA 值 =3 或 4。如果值 = 2 或 4,则排除电话

如果 DB.OrganisationPersonnel.EmployedToDate) 为 Null,则排除联系人 此代码似乎无法正常工作,我们将不胜感激。

    SELECT
DB.OrganisationPersonnel.OrganisationID
, DB.OrganisationPersonnel.PersonnelID AS [if not ProductPAID =5]
, DB.Title.Name
, DB.Person.FirstName
, DB.Person.MiddleName
, DB.Person.LastName
, DB.OrganisationPersonnel.ActualJobTitle
, DB.Phone.Number AS [if ProductPAID <3]
, DB.Email.Email AS [if ProductPAID =2 or 5]
, DB.Person.ProductDPAID
, DB.ProductDPA.Name
FROM
(((DB.OrganisationPersonnel
INNER JOIN
(DB.Person
INNER JOIN
DB.Title
ON
DB.Person.TitleID = DB.Title.ID)
ON
DB.OrganisationPersonnel.PersonnelID = DB.Person.ID)
LEFT JOIN
DB.Phone
ON
DB.OrganisationPersonnel.PhoneID = DB.Phone.ID)

LEFT JOIN
DB.Email
ON
DB.OrganisationPersonnel.EmailID = DB.Email.ID)


INNER JOIN
DB.ProductDPA
ON
DB.Person.ProductDPAID = DB.ProductDPA.ID
WHERE
(((DB.OrganisationPersonnel.EmployedToDate) Is Null))
ORDER BY
DB.OrganisationPersonnel.OrganisationID;

我试图在 WHERE 上添加额外的内容,但无法弄清楚如何不出错。任何帮助将不胜感激,因为我对 SQL 还很陌生。

最佳答案

首先,您的 FROM 子句中不需要任何方括号。只需删除它们。数据库引擎查询优化器将为您以最佳顺序进行连接。

接下来,您在 ON 上下文中遇到语法错误。您应该使用 AND 表达式组合多个匹配项,因为它只是一个 bool 表达式。而不是写作

ON
DB.Person.TitleID = DB.Title.ID)
ON
DB.OrganisationPersonnel.PersonnelID = DB.Person.ID)

ON DB.Person.TitleID = DB.Title.ID
AND DB.OrganisationPersonnel.PersonnelID = DB.Person.ID

关于mysql - 多个 ON WHERE SQL,无法让它工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49938199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com