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

Mysql 在select中添加一列,返回第一个表中的id是否存在于另一个表中,mysql,sql,select,join,Mysql,Sql,Select,Join,我想从一个表中选择每一行,并在select中添加一列,该列返回另一个具有相同id的表中是否存在行 所以我想从我的表“Yaourt”加上一个名为“Present”的列中得到所有内容,如果“Sondage”中的一行和IdY一起出现或不出现,该列将有0或1 CREATE TABLE Yaourt( IdY int (11) Auto_increment NOT NULL , Marque Varchar (50) NOT NULL , Nom Varchar (5

我想从一个表中选择每一行,并在select中添加一列,该列返回另一个具有相同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。

您已接近:

SELECT *,
   CASE WHEN EXISTS (SELECT * FROM Sondage AS s WHERE y.IdY=s.IdY) 
        THEN 1 
        ELSE 0
   END AS "present"
FROM Yaourt y;
你很接近:

SELECT *,
   CASE WHEN EXISTS (SELECT * FROM Sondage AS s WHERE y.IdY=s.IdY) 
        THEN 1 
        ELSE 0
   END AS "present"
FROM Yaourt y;
你很接近:

SELECT *,
   CASE WHEN EXISTS (SELECT * FROM Sondage AS s WHERE y.IdY=s.IdY) 
        THEN 1 
        ELSE 0
   END AS "present"
FROM Yaourt y;
你很接近:

SELECT *,
   CASE WHEN EXISTS (SELECT * FROM Sondage AS s WHERE y.IdY=s.IdY) 
        THEN 1 
        ELSE 0
   END AS "present"
FROM Yaourt y;

您可以通过左连接来实现这一点。这将有助于:

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

您可以通过左连接来实现这一点。这将有助于:

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

您可以通过左连接来实现这一点。这将有助于:

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

您可以通过左连接来实现这一点。这将有助于:

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

我不知道
案例
,那会对我帮助很大,谢谢你我不知道
案例
,那会对我帮助很大,谢谢你我不知道
案例
,那会对我帮助很大,谢谢你我不知道
案例
,那会对我帮助很大,谢谢你