gpt4 book ai didi

mysql - 在 select 中添加一列,返回第一个表中的 id 是否存在于另一个表中

转载 作者:太空宇宙 更新时间:2023-11-03 11:59:49 24 4
gpt4 key购买 nike

我想从一个表中选择每一行并在我的选择中添加一列,该列返回是否存在具有相同 ID 的另一个表中的一行。

所以我想从我的表“Yaourt”中获取所有内容,外加一个名为“Present”的列,如果“Sondage”中的一行与 IdY 一起存在,则该列将具有 0 或 1。

CREATE TABLE Yaourt(
IdY int (11) Auto_increment NOT NULL ,
Marque Varchar (50) NOT NULL ,
Nom Varchar (50) NOT NULL ,
Type Varchar (50) ,
Gout Varchar (50) NOT NULL ,
PRIMARY KEY (IdY )
)ENGINE=InnoDB;

CREATE TABLE Sondage(
Est_achete Bool ,
frequence Int DEFAULT 0,
Id Int NOT NULL ,
IdY Int NOT NULL ,
PRIMARY KEY (Id ,IdY )
)ENGINE=InnoDB;

附言: 到目前为止我有这样的东西 :

`SELECT *,(SELECT s.IdY FROM Sondage WHERE y.IdY=s.IdY) AS "present" FROM Yaourt y;`

它返回带有名为“present”的列的内容,但如果不存在则返回 NULL,如果存在则返回 Id。

最佳答案

您可以使用 LEFT JOIN 实现此目的。这应该有所帮助:

SELECT y.*,
CASE WHEN s.IdY IS NOT NULL THEN 1 ELSE 0 END AS present
FROM Yaourt y
LEFT
JOIN Sondage s
ON y.IdY = s.IdY

关于mysql - 在 select 中添加一列,返回第一个表中的 id 是否存在于另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29991652/

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