Mostrar columnas en función de las condiciones de varias tablas

Mostrar columnas en función de las condiciones de varias tablas

Mi objetivo es imprimir la identificación del correo, la dirección y el tipo de mascota dando condiciones donde estado = 'sí' en la tabla de estado de donación, identificación de detalles de la mascota = identificación de la mascota del donante y identificación de la mascota del destinatario e identificación de los miembros = identificación del miembro del anuncio del donante miembro_id = destinatario.

En términos simples, quiero mostrar los detalles del donante y el receptor, así como el tipo de mascota donada

Tablas de detalles de miembros y detalles de donantes

Tablas de detalles del destinatario, detalles de la mascota y detalles del estado de la donación

Figura 1: Tablas: miembros y donantes Figura 2: Tablas: destinatario, estado_donación, detalles_mascota

La consulta que probé fue select members.mail_id,members.address,pet_details.type from members,pet_details,donor,recipient,donation_status where members.id in (select pet_id from members,pet_details,donor,recipient,donation_status where status = 'yes' in (select member_id from donor,members,pet_details,donor,recipient where donor.member_id = recipient.member_id in (select pet_id from members,pet_details,donor,recipient where pet_id.donation_status = id.pet_details)))

El error que obtuve fue,

ERROR 1066 (42000): Tabla/alias no único: 'donante'

Mostrar la mejor respuesta

Copie texto, no imágenes. ¿Qué has intentado hasta ahora?

Lo siento, no lo sé. Actualizaré la publicación pronto con el error en la consulta.

La forma correcta de realizar esta consulta es con JOIN:

SELECT m1.mail_id AS donor, m1.address AS `donor address`, m2.mail_id AS recipient, m2.address AS `recipient_address`, pet_details.type as `pet type`
FROM members m1
JOIN donor ON donor.member_id = m1.id
JOIN recipient ON recipient.pet_id = donor.pet_id
JOIN donation_status ON donation_status.pet_id = donor.pet_id
JOIN members m2 ON m2.id = recipient.member_id
JOIN pet_details ON pet_details.id = donor.pet_id
WHERE donation_status.status = 'yes'

Resultado (parece que un miembro se donó un perro):

donor               donor address           recipient               recipient_address       pet type    
mn.sha222@gmail.com Gandhinagar Coimbatore  mn.sha222@gmail.com     Gandhinagar Coimbatore  dog