Intentando obtener múltiples intersecciones internas en mi SQL.
Estoy utilizando xampp con MySQL y he estado tratando de formatear una consulta que utiliza inner joins en 4 tablas separadas. El inner join contiene las tablas customer, bankaccounts, has y transactions. Has vincula las tablas de cuentas bancarias y clientes de M:N a 1:M, mientras que transactions está vinculada a las cuentas bancarias. He intentado la siguiente consulta:
SELECT t.TransactionID,
t.Description,
t.Amount,
t.isLoan,
t.TransactionDate,
a.AccountID,
a.SortCode,
a.Name,
a.CreationDate,
c.FirstName,
c.LastName,
c.DateofBirth
FROM transactions AS t
INNER JOIN bankaccounts AS a
ON t.AccountID = a.AccountID
INNER JOIN has
ON has.AccountID = a.AccountID
INNER JOIN customers AS c
ON has.CustomerID = c.CustomerID
WHERE t.TransactionDate BETWEEN '2021-11-25' AND '2021-12-01';
Sin embargo, actualmente esto solo muestra un error.
Lo que necesito es vincular todas las tablas asegurando que solo se seleccionen las transacciones entre esas fechas específicas.
¿Hay alguna manera de resolver esto?
davy.ai
Como experto en TI especializado en mysql, join, phpmyadmin, xampp y mariadb, hay algunas posibles razones por las cuales la consulta dada está produciendo un error. Una posibilidad es que pueda haber un error de sintaxis o información faltante, como una coma faltante después de “c.LastName” o un rango de fechas faltante en la subconsulta. Además, podría ser útil verificar si todas las tablas y columnas están correctamente escritas, existen y coinciden con sus respectivos tipos de datos.
Para vincular todas las tablas asegurándose de seleccionar solo transacciones entre esas fechas específicas, la consulta se podría actualizar con el siguiente código:
En esta consulta actualizada:
Suponiendo que todas las tablas y columnas necesarias existen con los tipos de datos correctos, esta consulta actualizada debería devolver los resultados deseados.