J'écris un perltk gui qui interagit avec une base de données. Je voudrais une certaine condition sur ma requête que le champ myo_maps_study
devrait correspondre à la regex MYO [0-9] * \ $ si le myo_maps_study existe. Il peut ne jamais exister pour certaines lignes. Si myo_maps_study n'existe pas, je voudrais quand même obtenir les résultatsRequête Psql en utilisant perl
Voici ma requête en cours qui vérifie uniquement le MYO [0-9] * \ $ regex.
my $query = "
SELECT wtg_uid, pat_first_name, pat_last_name, pat_chi_no,
wtg_scantype, wtg_confirmed,
std_in_out_patient,
inc_uid, wtg_appeared,
myo_maps_study, myx_event,
inc_incident_required, inc_incident_done,
inc_gp_letter_required, inc_gp_letter_done,
inc_reappt_required, inc_reappt_done,
inc_comment
FROM ((waiting INNER JOIN patients ON (wtg_pat_uid = pat_uid))
LEFT OUTER JOIN studies ON (wtg_uid = std_wtg_uid)
LEFT OUTER JOIN myx ON (std_uid = myx_std_uid)
LEFT OUTER JOIN myo on (std_uid = myo_std_uid))
LEFT OUTER JOIN incidents ON (wtg_uid = inc_wtg_uid)
WHERE wtg_scan_date = '$date' AND myo_maps_study ~ 'MYO[0-9]*\$'
ORDER BY pat_last_name;";
retours
17291 | AR | MAX | 1609 | E-R AND RNVG | | O | | Y | MYO130430 |
| | | | | | |
17201 | ANN | MCK | 3011 | E-R AND RNVG | | O | | Y | MYO134416 |
| | | | | | |
Lorsque je supprime la condition de myo_maps_study
SELECT wtg_uid, pat_first_name, pat_last_name, pat_chi_no,wtg_scantype, wtg_confirmed, std_in_out_patient, inc_uid, wtg_appeared, myo_maps_study, myx_event,inc_incident_required, inc_incident_done,inc_gp_letter_required, inc_gp_letter_done,inc_reappt_required, inc_reappt_done,inc_comment FROM ((waiting INNER JOIN patients ON (wtg_pat_uid = pat_uid)) LEFT OUTER JOIN studies ON (wtg_uid = std_wtg_uid) LEFT OUTER JOIN myx ON (std_uid = myx_std_uid) LEFT OUTER JOIN myo on (std_uid = myo_std_uid)) LEFT OUTER JOIN incidents ON (wtg_uid = inc_wtg_uid) WHERE wtg_scan_date = '19/08/13' ORDER BY pat_last_name;
je reçois
17264 | KIS | ASH | 150 | E-R AND RNVG | | | | Y | |
| | | | | | |
17262 | WIL | BE | 1301 | E-R AND RNVG | | | | | |
| | | | | | |
17268 | ELI | HAR | 2105 | E-R AND RNVG | | | | | |
| | | | | | |
17291 | AR | MAX | 1609 | E-R AND RNVG | | O | | Y | MYO130430T |
| | | | | | |
17291 | AR | MAX | 1609 | E-R AND RNVG | | O | | Y | MYO130430 |
| | | | | | |
17201 | ANN | MCK | 3011 | E-R AND RNVG | | O | | Y | MYO134416T |
| | | | | | |
17201 | ANN | MCK | 3011 | E-R AND RNVG | | O | | Y | MYO134416 |
| | | | | | |
17351 | SHI | MUL | 2907 | R-R ONLY | | | | | |
| | | |
Avis à la deuxième requête AR MAX et ANN MCK apparaissent deux fois. Ma sortie désirée est quelque chose entre. Je veux que chaque personne apparaisse une seule fois avec chaque requête. si une myo_maps_study existe, elle doit être celle avec le format MYO[0-9]*\$
. Pour les personnes sans myo_maps_study
je veux que la ligne soit sortie avec le champ vide
Comment est-ce que je peux faire ceci?
Fantastique merci – moadeep