Mysql 联接两个表并创建一个新行,显示表1中是否存在表2

Mysql 联接两个表并创建一个新行,显示表1中是否存在表2,mysql,database,join,null,case,Mysql,Database,Join,Null,Case,我有这两张桌子 表1 +-----------+----------+ | support_id| Name | +-----------+----------+ | 1 | Name 1 | | 2 | Name 2 | +-----------+----------+ 表2 +-----------+----------+ | school_id | support_id| +-----------+----------+ | 2314

我有这两张桌子

表1

+-----------+----------+
| support_id| Name     |
+-----------+----------+
| 1         | Name 1   |
| 2         | Name 2   |
+-----------+----------+ 
表2

+-----------+----------+
| school_id | support_id|
+-----------+----------+
| 2314      | 1        |
+-----------+----------+ 
期望输出

+-----------+----------+------------+
| school_id |support_id|     has    |
+-----------+----------+------------+
| 2314      | 1        | Yes        |
| 2314      | 2        | No         |
+-----------+----------+------------+
如何添加第三行,告诉我表2是否在表1中

提前谢谢

表2中的表1“是”是什么意思? 现场支持id与表2中的支持id相同? 或者场地或学校id是相同的

为了建立连接(外键)、连接并连接两个表,需要两个表中的字段相同

考虑到support_id是外键(两个表之间共享的值),您可以使用以下选择:

   SELECT school_id, IF(support_id is not null, "Yes", "No") as Has
   FROM table1 LEFT JOIN table2
   ON table1.support_id = table2.support_id;

我将使用左连接,然后使用
大小写
表达式格式化结果:

SELECT    t2.*, CASE WHEN t1.support_id IS NOT NULL THEN 'Yes' ELSE 'No' END
FROM      t2
LEFT JOIN t1 ON t2.support_id = t1.support_id

为什么第二排的学校id=2314?这个信息来自哪里?它来自另一个名为schools的表,表2有表1和其他schools表中的两个主键,但我从表2中提取数据,这就是为什么我只将这两个表放在问题上欢迎使用StackOverflow!到目前为止你试过什么吗?在这里,我们期待您的帮助,因为您的尝试有助于我们更好地了解您想要什么。请尝试一些操作,然后更新您的问题以显示您在某个应用程序中遇到的特定问题。欲了解更多信息,请参阅,并选择:)如果您的
表1
也有
学校id
列,那么这将更容易操作。您能否同时显示您的
学校
表?您好,我刚刚做了您的查询,它只显示了“2314 | 1 | Yes”,但没有显示“2314 | 2 | No”:(是的,support | id在两个表中都是外键,我刚刚尝试了您的查询,只得到了一列“2314 | 1 | Yes”,但无法为“2314 | 2 | No”生成第二列):(那么,您的数据有些不同,我想您的意思是一行正确吗?此选择应返回所有值。出于某些原因,支持id可能不同且不匹配(可能是空格?不同的列类型,如int=varchar?),还应检查数据是否正确插入表2和表1中。