Problem with joining to an empty table
Posted
by
Imran Omar Bukhsh
on Stack Overflow
See other posts from Stack Overflow
or by Imran Omar Bukhsh
Published on 2011-01-17T08:08:07Z
Indexed on
2011/01/17
17:53 UTC
Read the original article
Hit count: 158
I use the following query:
select * from A LEFT JOIN B on ( A.t_id != B.t_id)
to get all the records in A that are not in B.
The results are fine except when table B is completely empty, but then I do not get any records, even from table A.
Later
It wont work yet!
CREATE TABLE IF NOT EXISTS T1
(
id
int(11) unsigned NOT NULL AUTO_INCREMENT,
title
varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
t_id
int(11) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Dumping data for table T1
INSERT INTO T1
(id
, title
, t_id
) VALUES
(1, 'apple', 1),
(2, 'orange', 2);
--
-- Table structure for table T2
CREATE TABLE IF NOT EXISTS T2
(
id
int(11) NOT NULL AUTO_INCREMENT,
title
varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
t_id
int(11) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Dumping data for table T2
INSERT INTO T2
(id
, title
, t_id
) VALUES
(1, 'dad', 2);
Now I want to get all records in T1 that do not have a corresponding records in T2
I try
SELECT * FROM T1 LEFT OUTER JOIN T2 ON T1.t_id != T2.t_id
and it won't work
© Stack Overflow or respective owner