如何从两个不同的表中选择两个记录与一个查询在mysql中

问题描述:

如何从两个不同的表中选择两个记录与mysql中的一个查询?如何从两个不同的表中选择两个记录与一个查询在mysql中

使用

$search = $_GET['gd'] 
$arama_sonuc = mysql_query("select * from mp3 where baslik like '%$search%'"); 

以及其确定搜索查询的IM。它显示了我从MP3表结果。但使用相同的查询,我需要在HABERLER表上搜索一些东西。我该怎么办? 感谢...

+1

[SQL注入警报警笛在你耳边爆裂] – bobince 2010-01-29 00:08:05

使用UNION命令 http://dev.mysql.com/doc/refman/5.0/en/union.html

select * from mp3 where baslik like '%$search%' 
UNION 
select * from HABERLER where baslik like '%$search%' 

(想必他们有相同的列数和相同类型的,等等)

+0

解析错误:语法错误,意外的T_STRING错误 – 2010-01-28 23:42:01

+0

@Ronnie Chester Lynwood:你至少使用MySQL 5.0吗?如果没有,请检查您的版本是否支持UNION ... – 2010-01-28 23:46:14

+0

“意外的T_STRING”是一个PHP问题。尝试直接在MySQL上运行查询。如果那可行,那么你就是黄金,但你只需要找出如何在PHP中使用它。 – mlathe 2010-01-29 00:03:34

这个问题不清楚,你可以或者需要以下结构之一

SELECT * 
FROM mp3 
WHERE baslik like '%$search%'" 
UNION 
SELECT * 
FROM HABERLER 
WHERE baslik like '%$search%'" 

SELECT * 
FROM mp3 M 
JOIN HABERLER H on H.some_field = M.some_field_in_mp3_table 
WHERE baslik like '%$search%'" 

UNION构造允许在单个结果集中收集来自不同表的记录;记录需要在结构上相同,即具有相同的列(不一定命名相同但具有相同类型的数据)。结果集包括满足第一个查询的所有行和满足第二个查询的所有行(根据ALL关键字可能会删除重复项)。
如果例如mp3和HABERLER表包含相同类型的记录(例如:关于音乐文件的信息),则UNION很有用。

JOIN构造允许获取包含第一个表中的列和第二个表中创建的列的记录的结果集。来自第二个表格的记录是基于它们满足JOIN的“ON条件”而选择的。
如果两个表格包含补充信息(例如,mp3包含有关mp3文件的信息,而HABERLER包含有关音乐家的信息,则JOIN很有用; mp3会引用其中一列中的音乐家,并且HABERLER有一列可用于标识音乐家的列相同的值)

+0

非常感谢 – 2010-01-29 11:23:33