jeg har forsøgt følgende.: -------------------- SELECT c.id, c.chemical_name, c.cas_number, c.density, c.register_date, c.register_by, s.cd_formula, s.cd_molweight FROM compound c, structures s WHERE c.cd_id = s.cd_id AND c.chemical_name like '%test%' --------------------
compound har feltet cd_id som er link til data i structures som har primary key cd_id.
Men nogle af mine data i compound har værdien 0 i cd_id i compound tabellen, hvilket vil sige at de ikke har en structure tilknyttet. ovenstående sql giver mig så alle de data som ikke har c.cd_id = 0. (samt har chemcial_name like test!)
Men jeg vil naturligvis også have vist de data fra compound som 'chemical_name like test' og har cd_id = 0........!
SELECT c.id, c.chemical_name, c.cas_number, c.density, c.register_date, c.register_by, s.cd_formula, s.cd_molweight FROM compound c, structures s WHERE (c.cd_id = s.cd_id OR c.cd_id = 0) AND c.chemical_name like '%test%'
Virker ikke, returnerer alle rækker... (alle rækker har jo enten en værdi i cd_id eller også er værdien 0, så ovenstående vil altid returnere alle rækker.).
SELECT c.id, c.chemical_name, c.cas_number, c.density, c.register_date, c.register_by, s.cd_formula, s.cd_molweight FROM compound c LEFT JOIN structures s ON c.cd_id = s.cd_id WHERE c.chemical_name like '%test%'
LEFT JOIN betyder: tag alle records på venstre side, hvis der er en record på højre side som opfylder betingelsen så lig den ved siden af, hvis ikke så lad være
records i den tabel der er angivet henholdsvis til venstre og til højre for "LEFT JOIN".
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.