Database schema:

CREATE TABLE relation (
	store_nbr INTEGER -- example: ['2', '1'],
	station_nbr INTEGER -- example: ['1', '14'],
	PRIMARY KEY (store_nbr), 
	CONSTRAINT fk_relation_sales_in_weather FOREIGN KEY(store_nbr) REFERENCES sales_in_weather (store_nbr),
	CONSTRAINT fk_relation_weather FOREIGN KEY(station_nbr) REFERENCES weather (station_nbr)
)


CREATE TABLE sales_in_weather (
	date DATE -- example: ['2012-01-02', '2012-01-01'],
	store_nbr INTEGER -- example: ['2', '1'],
	item_nbr INTEGER -- example: ['2', '1'],
	units INTEGER -- example: ['0', '29'],
	PRIMARY KEY (store_nbr, date, item_nbr)
)


CREATE TABLE weather (
	station_nbr INTEGER -- example: ['2', '1'],
	date DATE -- example: ['2012-01-02', '2012-01-01'],
	tmax INTEGER -- example: ['52', '50'],
	tmin INTEGER -- example: ['11', '31'],
	tavg INTEGER -- example: ['42', '41'],
	depart INTEGER -- example: ['16', '12'],
	dewpoint INTEGER -- example: ['26', '36'],
	wetbulb INTEGER -- example: ['40', '35'],
	heat INTEGER -- example: ['23', '24'],
	cool INTEGER -- example: ['0', '5'],
	sunrise TEXT -- example: ['07:16:00', '07:15:00'],
	sunset TEXT -- example: ['16:27:00', '16:26:00'],
	codesum TEXT -- example: ['RA FZFG BR', ' '],
	snowfall REAL -- example: ['0.0', '0.05'],
	preciptotal REAL -- example: ['0.05', '0.01'],
	stnpressure REAL -- example: ['29.78', '29.44'],
	sealevel REAL -- example: ['29.62', '29.92'],
	resultspeed REAL -- example: ['9.8', '3.6'],
	resultdir INTEGER -- example: ['24', '20'],
	avgspeed REAL -- example: ['4.6', '10.3'],
	PRIMARY KEY (station_nbr, date)
)

Question: What is the ID of the item that sold the best on the day with the highest max temperature in store no.3 in 2012?
Evidence: highest max temperature refers to Max(tmax); store no.3 refers to store_nbr = 3; in 2012 refers to substring (date, 1, 4) = '2012'; sold the best refers to Max(units); ID of the item refers to item_nbr

SQL:
SELECT T1.item_nbr FROM sales_in_weather AS T1 INNER JOIN relation AS T2 ON T1.store_nbr = T2.store_nbr INNER JOIN weather AS T3 ON T2.station_nbr = T3.station_nbr WHERE T1.store_nbr = 3 AND T1.`date` LIKE '%2012%' AND tmax = ( SELECT MAX(tmax) FROM sales_in_weather AS T1 INNER JOIN relation AS T2 ON T1.store_nbr = T2.store_nbr INNER JOIN weather AS T3 ON T2.station_nbr = T3.station_nbr WHERE T1.store_nbr = 3 AND T1.`date` LIKE '%2012%' ) GROUP BY T1.item_nbr ORDER BY SUM(units) DESC LIMIT 1