Je ne sais pas si le titre est correct mais voici mon problème. Donc, je veux créer View dans phpmyadmin en utilisant les données de plusieurs tables (image ci-dessous), View qui représente la maintenance pour les lampes avec des champs de plusieurs tables (sous-station, post_type, area, lamp_type, failure et maintenance)MySQL create Tables/Vues
J'ai en quelque sorte réussi et créé quelque chose comme ça (image ci-dessous), que je réussi à créer en utilisant ce bloc de code:
CREATE OR REPLACE VIEW
v_lamp_I
AS
SELECT
lamps.id,
substation.code AS sub_code,
substation.name AS sub_name,
lamps.lamp_code,
post_type.descript AS post_ty,
lamp_type.descript AS lamp_ty,
area.descript AS area_name,
rasvjeta.adress,
DATE_FORMAT(date_maintenance, "%d.%m.%Y.") AS date_main,
lamps.geo_long,
lamps.geo_lat
FROM lamps
INNER JOIN substiation ON substiation.id = lamps.substiation_id
INNER JOIN post_type ON post_type.id = lamps.post_type_id
INNER JOIN lamp_type ON lamp_type.id = lamps.lamp_type_id
INNER JOIN area ON area.id = rasvjeta.area_id
INNER JOIN maintenance ON maintenance.lamps_id = lamps.id
J'ai réussi à créer une vue, mais le problème est avec cette vue, je ne peux voir que les lignes/lampes (sifra_lampe) qui ont été maintenues, seulement 4. Dans lampes J'ai 24 entrées et seulement 4 entrées pour maintenance.Mais, je veux voir toutes les 24 entrées et s'il n'y avait pas de maintenance pour cette lampe particulière, le champ peut être vide avec le format de la date (00-00-00 ou il peut être NULL) et pour les entrées/lampes qui ont été maintenues vouloir être un champ de date visible.
Voici des lampes de table avec des entrées.
Et voici la vue avec la date de maintenance. Comme vous pouvez le voir il ya seulement 6 entrées
Je veux voir le reste des entrées, pour les lampes qui n'ont pas été maintenues, les entrées peuvent être au format NULL ou DATE comme ceci (00-00-00) et pour les lampes qui ont été maintenus au format de la date peut rester le même, en bref, je veux voir toutes les entrées non seulement celles qui ont été maintenues. Merci et désolé pour une longue question. Je ne savais pas comment construire une question significative et courte, donc tout écrit.
Je ne peux pas beaucoup de sens de vos noms de table, donc je vais laisser la connexion de table pour vous, mais vous devriez examiner pour obtenir la Jointures vue que vous voulez. La jointure interne ne montre que les correspondances complètes (où les deux tables ont des valeurs), vous devez utiliser la jointure à gauche (qui affiche tous les rerecords de la table primaire et sélectionnés à partir du secondaire). Avec la jointure à gauche, votre première table devrait être celle qui a les 24 enregistrements que vous voulez afficher et la table secondaire celle qui a les valeurs "nulles". La réponse va vous aider: http://stackoverflow.com/questions/406294/left-join-and-left-outer-join-in-sql-server – Zero
Ok, je vais essayer quelque chose comme ça, merci: – Svinjica