For example, blood sodium has itemid 837, 220645 etc... in chartevents and 50983 in labevents. Most patients have recordings in both tables, of which some are duplicates and some are unique. I'm using MIMIC-III version 1.3. Thanks.
LABEVENTS data is from the actual hospital wide laboratory data management system.
CHARTEVENTS data is from the ICU database that is used as an electronic chart for the patient at the bedside.
Since the chart needs to contain lab values, as they are relevant to the patient's health, the laboratory data is pulled from the hospital wide laboratory database to the more local ICU database. Consequently, labs in the LABEVENTS table will re-appear in the CHARTEVENTS table. However, LABEVENTS spans more than just the patient's ICU stay, and in fact covers their entire hospital stay (and sometimes out patient stays too). As a result, I would recommend only using LABEVENTS to extract lab values.
Regarding non-unique values in CHARTEVENTS: care providers can insert or modify the values in the electronic chart. As a result, these could be measurements from some other source (e.g. a fingerstick glucose measurement), or they could be a modification of an original lab value.
As a general tip, the CHARTTIME for automatically synchronized lab values in CHARTEVENTS is unusually precise. Most measurements are hourly or every 15 minutes, but often lab values in this table are at "19:43" (for example). This generally implies it's been automatically synchronized into the table.