如何在mysql中用一个查询从两个不同的表中选择两条记录?
我正在使用的搜索查询
$search = $_GET['gd']
$arama_sonuc = mysql_query("select * from mp3 where baslik like '%$search%'");
好吧,没关系。它显示了我从mp3表的结果。但是使用相同的查询我还需要在HABERLER表上搜索一些东西......我该怎么办?
答案 0 :(得分:4)
使用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%'
(可能是它们具有相同数量的列和相同类型等)
答案 1 :(得分:4)
问题不明确,您可能需要以下结构之一
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条件”的满意度来选择的 如果两个表包含补充信息,JOIN很有用(例如mp3包含有关mp3文件的信息,HABERLER包含有关音乐家的信息; mp3在其中一列中引用音乐家,而HABERLER有一列用于识别音乐家相同的价值)