Mysql获取链接和未链接主键

标签 mysql sql

您好,我正在尝试使用 if exit 进行查询来获取链接到其他表和未链接到其他表的主键。这是我的查询

SELECT *, IF( EXISTS(
             SELECT * FROM categorias
  Where (SELECT COUNT(*)
  FROM actividades where categorias.categoriaID)=0)  , "YES", "NO") 
  FROM  categorias

即使很少有主键未链接,我也总是得到YES。任何帮助都会有用的。

我的表类别作为父表和子表是actividades(来自类别的FK)

在我的categorias表中,我有3种类型

 CategoriaID   TYPE
   1           ADMIN
   2           USEER
   3           W/E

在我的 child 表中我有

ChildrenID  FatherID(categoria)    NAME
1                 1                NONE

查询的结果应该是

1 ADMIN NO
2 USEER YES
3 W/E  YEs

因为如果父亲没有 child ID,我的 if 条件就会设置 YES

最佳答案

没有“IF”的解决方案

SELECT t1.column_name, 'NO' AS column_name 
FROM table1 AS t1, table2 AS t2 
WHERE t1.id = t2.t1_id
UNION
SELECT column_name, 'Yes' AS column_name 
FROM table1 
WHERE id NOT IN(SELECT t1_id FROM table2);

带有“IF”的解决方案

SELECT column_name, IF(id IN(SELECT t1_id FROM table2), 'NO', 'Yes') AS column_name
FROM table1;

希望我能帮到你。

关于Mysql获取链接和未链接主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45703863/

相关文章:

MySql CASE 执行查询返回操作数应包含 1 列

mysql - 如何在不重启 MySQL 的情况下启用 MySQL 慢查询日志?

python - 根据表中的现有属性在 Python 中填充 SQL 表

sql - 选择按 id 排序的唯一行

asp.net - DELETE 语句与 REFERENCE 冲突

php - 将值压入数组的末尾

php - 使用 aFetch($sql) 问题用 php 从 mysql db 中获取所有行

mysql - 为什么我的查询在正确的情况下却给出错误?

php - 如果输入有 html,则清理用户输入

MYSQL,如何合并名字的前2个字母和姓氏的前5个字母