mysql - 连接多个表sql

标签 mysql sql join

我想创建数据库的 View 。事实上,我的数据库包含大约 20 个表,我想根据外键连接这些表,但有一些重复的列。有没有一种既简单又快速的方法呢?

最佳答案

这可能会有所帮助。如果您不想受骗,则必须列出这些列。您可以运行

<强> SQL Fiddle Example

select group_concat(concat(table_name,'.', column_name) separator ', ') 
from information_schema.columns
where table_name in ('Students', 'ClassRoster');

这将列出您在一个长字符串中指定的表中的所有列的 [table_name].[column_name]。然后,您可以复制结果并将其粘贴到查询中的 SELECT 旁边,并删除所有重复列(如果您知道)。此查询将显示有多于一个的列并显示表格。

select table_name, column_name 
from INFORMATION_SCHEMA.COLUMNS
where column_name in (
  select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS
  group by COLUMN_NAME 
  having count(1) > 1)
order by column_name

它仍然是手动的,但会节省您一些时间。通过多一点努力,您可以将查询调整为整个过程只是一个查询,而不需要手动删除任何内容。

关于mysql - 连接多个表sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27408780/

相关文章:

mysql - 具有多个连接的复杂 SQL

php - sql连接需要进一步的帮助

mysql - 如何在 bash 的 mysql 列中打印连接字符串

SQL 获取字符串最常见部分的计数

java - 数据库字符集 UTF16 未显示正确的字符

sql - Postgresql 将属性与表混淆

SQL Server 多个替换

MySQL 基于 IF 条件从两个表之一进行 JOIN

mysql - COUNTs 使查询减慢 150+ 次

mysql - MySql 中的时间戳和夏令时 [dst]