【发布时间】:2018-05-24 04:39:32
【问题描述】:
我有一个错误“使用的 select statements 有不同的列数 mysql”
我的查询
SELECT
* FROM
inventory
WHERE
barcode1 = 'DR963560860GYYQBKBBD2'
OR barcode2 = 'DR963560860GYYQBKBBD2'
OR barcode3 = 'DR963560860GYYQBKBBD2'
OR barcode4 = 'DR963560860GYYQBKBBD2' UNION
SELECT
p.id AS 'PartId',
m.`Name` AS 'Model',
c.`Name` AS 'Color',
pt.`Name` AS 'PartType'
FROM
inventory i
JOIN part p ON p.Id = i.PartId
JOIN model m ON m.Id = p.ModelId
JOIN color c ON c.Id = p.ColorId
JOIN parttype pt ON pt.Id = p.PartTypeId
WHERE
barcode1 = @barcode
OR barcode2 = @barcode
OR barcode3 = 'DR963560860GYYQBKBBD2'
OR barcode4 = 'DR963560860GYYQBKBBD2';
我想得到的是第一个select语句中库存表中的所有数据,另一个来自另一个表。
之前,我有两个查询是
SELECT
*
FROM
inventory
WHERE
barcode1 = @Barcode
OR barcode2 = @Barcode
OR barcode3 = @Barcode
OR barcode4 = @Barcode`
这将检索库存中的所有信息,另一个是
SELECT
p.id AS 'PartId',
m.`Name` AS 'Model',
c.`Name` AS 'Color',
pt.`Name` AS 'PartType'
FROM
inventory i
JOIN part p ON p.Id = i.PartId
JOIN model m ON m.Id = p.ModelId
JOIN color c ON c.Id = p.ColorId
JOIN parttype pt ON pt.Id = p.PartTypeId
WHERE
barcode1 = @Barcode
OR barcode2 = @Barcode
OR barcode3 = @Barcode
OR barcode4 = @Barcode
这将只加载四列。
由于我的输出加载太慢,我将把它合并到一个查询中。这可能吗?我该怎么做?
我是 MySQL 的初学者。
【问题讨论】:
-
您已经编辑了问题,但是我仍然没有完全理解,您能否添加从第一个查询返回的简化示例数据,然后从第二个查询返回,最后是您希望的结果实现,就像在我显示 tableA 和 tableB 的答案中一样
-
我已经知道该怎么做了。非常感谢! :)