你好朋友,希望你能帮助我,我对使用内连接或左连接连接表的SQL查询没有太多经验。
我有 2 个 talbas 我想通过 idCliente 关联数据
1.- 客户(公司名称、RFC、街道、社区、市政府、州、邮政编码)
2.- 商品(idTrip、idClient、Client、rfc、货币、商品、金额、TypeOperation、DateAdded、详细信息、TypeTransport、DateOut、DateArrival、对开、原产地、原产地、原产地、目的地、目的地、目的地、政策、费用、保费, 费用, 增值税, 总计)
这是我到目前为止的查询,但它告诉我有几个字段不明确(idCliente, rfc, FechaAlta y RFC
)
SELECT idViaje, idCliente, Cliente, rfc, moneda, mercancia, importe, TipoOperacion, FechaAlta, detalles, TipoTransporte, FechaSalida, FechaLlegada, folio, porigen, eorigen, corigen, pdestino, edestino, cdestino, poliza, cuota, prima, gastosexp, iva, total, RazonSocial, RFC, Calle, Colonia, Municipio, Estado, CP
FROM merca M, clientes C
WHERE C.idCliente=M.idCliente;
美好的一天,您应该很好地使用别名,以避免出现歧义问题。如果您只想显示有客户的商品(不为空),那么您必须使用 INNER JOIN 或 JOIN,它们是相同的。但是如果你想显示记录,即使它们包含空值,你应该使用 LEFT JOIN 或 RIGHT JOIN。
查询将如下所示:
干杯!
亲爱的,
您的查询显示的错误基本上是因为您的两个表共享具有相同名称的列,因此当您在 SELECT 中指示它们时,数据库引擎不知道您要代表哪一列。现在,如果你想把这个结果传递到前面,我建议使用别名,这样你就可以指出具体的列。后者是在公社名称之后完成的,像这样:
clientes.rfc AS rfc_cliente
它会是这样的我希望我能帮助你
SQL 查询应该指定它从哪个表中获取每个数据,以避免友谊:
除此之外,您还可以为具有相同名称的列添加“别名”,以便您以后可以引用它们,如下所示:
SELECT M.idViaje, M.idCliente, M.Cliente, M.rfc rfc_merca , M.currency, M.merchandise, M.amount, M.TipoOperacion, M.FechaAlta, M.details, M.TipoTransporte, M.FechaSalida, M.Date of Arrival, M.folio, M.porigen, M.oorigin, M.corigen, M.pdestino, M.edestino, M.cdestino, M.poliza, M.cuota, M.premium, M.expenses, M. vat, M.total, C.RazonSocial, C.RFC rfc_cliente , C.Calle, C.Colonia, C.Municipio, C.Estado, C.CP FROM merca M, 客户 C WHERE C.idCliente=M.idCliente ;
这样您就可以明确地告诉您在 MYSQL 查询中要查找的内容,以便它返回一些您可以毫无问题地操作的数据。
我不想太理论化,但是,从字面上回答你的问题,我们将谈论 NATURAL JOIN 操作,你可以像这样实现:
由于它由所有具有相同名称的字段组合而成,因此不会有歧义,结果数据是相同的。请注意,这仍然不是您提出问题时的意思。