mysql - 从 2Tables-Mysql 中删除通用 id 时发现问题

标签 mysql sql

SET @sql =   CONCAT('SELECT ', (SELECT GROUP_CONCAT(COLUMN_NAME) FROM 
information_schema.columns WHERE table_schema = 'i2049127_wp1' AND table_name = 
'wp3_wpsp_ticket' AND column_name NOT IN ('wt.guest_name', 'wt.guest_email')), 
' from i2049127_wp1.wp3_wpsp_ticket wt,i2049127_wp1.wp3_wpsp_catagories wc   where wt.cat_id=wc.id limit 1');

PREPARE data FROM @sql;

EXECUTE data;

尝试连接 2 个表,但出现如下错误

enter image description here

最佳答案

如果您不需要它,最简单的方法就是从所选列中删除 id:

SET @sql =   CONCAT('SELECT ',
                    (SELECT GROUP_CONCAT(COLUMN_NAME) FROM 
information_schema.columns WHERE table_schema = 'i2049127_wp1' AND table_name = 
'wp3_wpsp_ticket' AND column_name NOT IN ('wt.guest_name', 'wt.guest_email', 'id')), 
                  ' from i2049127_wp1.wp3_wpsp_ticket wt  join i2049127_wp1.wp3_wpsp_catagories wc on wt.cat_id = wc.id limit 1');

如果您确实需要它,您需要决定哪一个:

SET @sql =   CONCAT('SELECT ',
                    (SELECT GROUP_CONCAT((CASE WHEN COLUM_NAME = 'id' THEN 'wt.id' ELSE COLUMN_NAME END)) FROM 
information_schema.columns WHERE table_schema = 'i2049127_wp1' AND table_name = 
'wp3_wpsp_ticket' AND column_name NOT IN ('wt.guest_name', 'wt.guest_email')), 
                  ' from i2049127_wp1.wp3_wpsp_ticket wt join i2049127_wp1.wp3_wpsp_catagories wc on wt.cat_id = wc.id limit 1');

请注意,我还修复了过时的 JOIN 语法。

关于mysql - 从 2Tables-Mysql 中删除通用 id 时发现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40156254/

相关文章:

mysql - 如何获取另一个表中定义的列值

sql - 加入日期范围查询

mysql - 匹配 MySQL 中的单词 "Different"( bool 模式)

mysql - CF10 , MYSQL SQL_SELECT_LIMIT=默认值

java - 类型为 java.lang.String 的值 <br 无法转换为 JSONObject

mySQL 数据类型用于存储带有缩写后缀的数字?

php - SQL 查询返回空结果

php - 如何在 laravel 中转换 sql 的核心查询?

mysql - 是否可以将一列引用为多个外键?

php - Mysql查询插入使用等号