加入两个表具有一个共同的关键在MySQL
我有两个表:加入两个表具有一个共同的关键在MySQL
表1
id app_name app_id
1 name1 12001
2 name2 12002
3 name2 12002
3 name3 12003
其次
表2
id app_id
1 22001
2 22002
3 12003
4 22002
我如何可以显示数据从这张表app_id的相同?
在这个例子中正确的SQL应显示
name3 12003
我已经尝试过所有类型的加盟,也select * from table1, table2 where table1.app_id=table2.app_id
,但似乎我失去了一些东西简单。
正确答案
不可打印,经过数据库插入剪贴板复制数据出现符号导致了这个问题。两个表中的列值不相同。可以通过手动或十六进制编辑器进行SQL转储和检查来检查。
SELECT Table1.app_name, Table1.app_id
FROM Table1
INNER JOIN Table2 ON Table1.app_id = Table2.app_id
+1,因为这是问题被问到的正确答案,但是如果你注意到他实际上已经试过了。问题可能出在他的桌子结构上。 – 2010-12-12 14:34:20
@Mark Byers:同意。我也注意到了;这就是为什么我要求澄清。 – 2010-12-12 14:36:07
还是看空效果,之前就已经试过了。可能是,这是其他地区的某种错误,数据库错误,不是类似的ID,但现在找不到它。 – 2010-12-12 14:37:29
正规内加入应该足够了:
select t1.app_name, t1.app_id from table1 t1 inner join table2 t2 on t1.app_id = t2.app_Id
你贴应该工作(虽然我会强烈建议您使用JOIN关键字,而不是逗号语法)查询。
我怀疑你的问题是你的表没有被正确创建。使用下面的命令来调试问题 - 并特别注意数据类型:
SHOW CREATE TABLE table1;
SHOW CREATE TABLE table2;
您还可能要检查该行你在结果集真的希望这两个表中确实存在:
SELECT * FROM table1 WHERE app_id = '12003';
SELECT * FROM table2 WHERE app_id = '12003';
你表示你没有看到你想要的。发生了什么呢? – 2010-12-12 14:33:46
你的查询适合我。你的剧本显示什么? – 2010-12-12 14:39:47