-- REMOVE OLD TABLES DROP TABLE IF EXISTS test_machine; DROP TABLE IF EXISTS test_order; -- CREATE CREATE TABLE IF NOT EXISTS `test_machine` ( `machineid` VARCHAR(32) NOT NULL, `activeorderid` bigint(20) unsigned DEFAULT NULL, PRIMARY KEY (`machineid`) ) ENGINE=InnoDB; REPLACE INTO `test_machine` (`machineid`, `activeorderid`) VALUES ('m1', NULL), ('m2', 2), ('m3', NULL), ('m4', NULL); CREATE TABLE IF NOT EXISTS `test_order` ( `orderid` bigint(20) unsigned NOT NULL, `machineid` VARCHAR(32) DEFAULT NULL, PRIMARY KEY (`orderid`) ) ENGINE=InnoDB; INSERT IGNORE INTO `test_order` (`orderid`, `machineid`) VALUES (1, 'm2'), (2, 'm2'); -- Query SELECT test_order.*,'|' as sep, test_machine.* FROM test_order LEFT JOIN test_machine ON (test_machine.machineid=test_order.machineid AND test_machine.activeorderid=test_order.orderid);