Duda con consulta utilizando inner join
Publicado por Roberto (2 intervenciones) el 21/06/2017 17:52:47
Les comento, tengo 2 tablas la primera se llama adicionales y la segunda se llama comandas.
En la tabla de adicionales mi diseño es de la siguiente manera:
Nombre Tipo
cveAdicional int (llave primaria)
descripción varchar
cveTipoAd int
precio double
fecha date
hora time
fehamod date
horamod time
Contenido de la tabla adicionales:
En la tabla de comandas mi diseño es de la siguiente manera:
Nombre Tipo
cveOrden int (llave primaria)
folio varchar
cveMenu int
cveMesa int
comentarios text
fecha date
hora time
status int
horacocina time
adic1 int
cantadic1 int
adic2 int
cantadic2 int
adic3 int
cantadic3 int
adic4 int
cantadic4 int
adic5 int
cantadic5 varchar
Contenido de la tabla comandas:

Al realizar mi consulta tengo el siguiente codigo:
SELECT DISTINCT comandas.cveOrden, menus.titulo, menus.precio,
comandas.cveMesa, adicionales.descripcion, comandas.cantadic1, adicionales.descripcion,
comandas.cantadic2, adicionales.descripcion, comandas.cantadic3, adicionales.descripcion,
comandas.cantadic4, adicionales.descripcion, adicionales.descripcion, comandas.cantadic5
FROM comandas
INNER JOIN menus ON comandas.cveMenu = menus.cveMenu
INNER JOIN adicionales ON comandas.adic1 = adicionales.cveAdicional
OR comandas.adic2 = adicionales.cveAdicional
OR comandas.adic3 = adicionales.cveAdicional
WHERE comandas.cveOrden = 7;
El resultado que me muestra es este:
cveOrden titulo precio cveMesa descripcion cantadic1 descripcion1 cantadic2 descripcion2 cantadic3 descripcion3
7 Cena mexicana 90 4 Refresco 3 Refresco 2 Refresco 1 Refresco
7 Cena mexicana 90 4 Cerveza 3 Cerveza 2 Cerveza 1 Cerveza
7 Cena mexicana 90 4 Orden de aguacate 3 Orden de aguacate 2 Orden de aguacate 1 Orden de aguacate
Si se fijan el resultado me lo repite 3 veces y quisiera que solo me lo presentara en 1 fila
¿Se puede hacer esto?
En la tabla de adicionales mi diseño es de la siguiente manera:
Nombre Tipo
cveAdicional int (llave primaria)
descripción varchar
cveTipoAd int
precio double
fecha date
hora time
fehamod date
horamod time
Contenido de la tabla adicionales:

En la tabla de comandas mi diseño es de la siguiente manera:
Nombre Tipo
cveOrden int (llave primaria)
folio varchar
cveMenu int
cveMesa int
comentarios text
fecha date
hora time
status int
horacocina time
adic1 int
cantadic1 int
adic2 int
cantadic2 int
adic3 int
cantadic3 int
adic4 int
cantadic4 int
adic5 int
cantadic5 varchar
Contenido de la tabla comandas:

Al realizar mi consulta tengo el siguiente codigo:
SELECT DISTINCT comandas.cveOrden, menus.titulo, menus.precio,
comandas.cveMesa, adicionales.descripcion, comandas.cantadic1, adicionales.descripcion,
comandas.cantadic2, adicionales.descripcion, comandas.cantadic3, adicionales.descripcion,
comandas.cantadic4, adicionales.descripcion, adicionales.descripcion, comandas.cantadic5
FROM comandas
INNER JOIN menus ON comandas.cveMenu = menus.cveMenu
INNER JOIN adicionales ON comandas.adic1 = adicionales.cveAdicional
OR comandas.adic2 = adicionales.cveAdicional
OR comandas.adic3 = adicionales.cveAdicional
WHERE comandas.cveOrden = 7;
El resultado que me muestra es este:
cveOrden titulo precio cveMesa descripcion cantadic1 descripcion1 cantadic2 descripcion2 cantadic3 descripcion3
7 Cena mexicana 90 4 Refresco 3 Refresco 2 Refresco 1 Refresco
7 Cena mexicana 90 4 Cerveza 3 Cerveza 2 Cerveza 1 Cerveza
7 Cena mexicana 90 4 Orden de aguacate 3 Orden de aguacate 2 Orden de aguacate 1 Orden de aguacate
Si se fijan el resultado me lo repite 3 veces y quisiera que solo me lo presentara en 1 fila
¿Se puede hacer esto?
Valora esta pregunta


0