mysql - MySQL 将四个表(相关)组合成一个新表,以便我可以导出到 CSV
问题描述
我的目标是结合所有 4 个表中的所有字段以生成一个包含所有字段的新表,以便我可以导出为 CSV,以便将 CSV 导入 WordPress/WooCommerce。
“主”表似乎是子产品(包含 2000 个项目),这些都与产品表(20 个项目)相关,与类别和品牌相关。希望这有点道理。
如果您能分享任何 SQL 指导,我将不胜感激。
有 4 个表;
CREATE TABLE Products (
ProductID int NOT NULL,
Name varchar(100) NOT NULL,
Description varchar(5000) NOT NULL,
CategoryID tinyint NOT NULL,
BrandID tinyint NOT NULL,
ChartImage varchar(50) NULL,
FrontPage bit NULL DEFAULT (0),
Visibility bit NULL DEFAULT (0),
Brochure varchar(50) NULL,
Video varchar(50) NULL,
SmallImageA varchar(50) NULL,
MediumImageA varchar(50) NULL,
LargeImageA varchar(50) NULL,
SmallImageB varchar(50) NULL,
MediumImageB varchar(50) NULL,
LargeImageB varchar(50) NULL,
SmallImageC varchar(50) NULL,
MediumImageC varchar(50) NULL,
LargeImageC varchar(50) NULL,
SmallImageD varchar(50) NULL,
MediumImageD varchar(50) NULL,
LargeImageD varchar(50) NULL,
SmallImageE varchar(50) NULL,
MediumImageE varchar(50) NULL,
LargeImageE varchar(50) NULL,
LinkA varchar(300) NULL,
LinkB varchar(300) NULL,
LinkC varchar(300) NULL,
LinkD varchar(300) NULL,
LinkE varchar(300) NULL,
ProductAssociationA int NULL,
ProductAssociationB int NULL,
ProductAssociationC int NULL
);
SubProducts,
CREATE TABLE SubProducts (
SubProductID int NOT NULL,
Code varchar(50) NOT NULL,
Name varchar(300) NOT NULL,
ProductID int NOT NULL,
OnPromotion bit NOT NULL,
Visibility bit NOT NULL,
RetailerPrice varchar(20) NOT NULL,
RetailerPromotionPrice varchar(20) NULL,
PharmacyPrice varchar(20) NULL,
PharmacyPromotionPrice varchar(20) NULL,
GovernmentPrice varchar(20) NULL,
GovernmentPromotionPrice varchar(20) NULL
);
Categories,
CREATE TABLE Categories (
CategoryID tinyint NOT NULL,
CategoryName varchar(50) NOT NULL,
SortColumn tinyint NULL
);
Brands,
CREATE TABLE Brands (
BrandID tinyint NOT NULL,
BrandName varchar(50) NOT NULL,
SortColumn tinyint NULL
);
非常感谢你。
解决方案
转储东西的最简单方法是加入明显的键:
SELECT Products.*, SubProducts.*, Categories.*, Brands.* FROM
Products
LEFT JOIN SubProducts ON ( Products.ProductID = SubProducts.ProductID )
LEFT JOIN Categories ON ( Categories.CategoryID = Products.CategoryID )
LEFT JOIN Brands ON ( Brands.BrandID = Products.BrandID )
/* This part of the query will give you a CSV file: */
INTO OUTFILE '/var/lib/mysql-files/myfilename.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
推荐阅读
- swift - 如何将现有代码添加到故事板骨架 UI?
- python - 如何将 IB 位置数据导出到数据框?
- c# - ReadStringAsSync() 只返回部分内容
- wordpress - Woocommerce 添加到购物车重定向到结帐不起作用
- c# - 如何从 Windows 窗体打印明文?
- apache-spark - MAX-CSP 求解器的大数据集成?
- ios - 如何修复返回 nil 的扩展实例?
- javascript - 同步使用 Angular Http.Get()
- xamarin.forms - Appcenter推送:基于自定义数据的动态导航
- python - 如何将函数应用于遍历每一行的多个列