如何从3个表中选择一列

时间:2011-10-11 09:22:58

标签: php mysql sql

我想从3个表中选择一个相同的列,并从这一列中获取一行。

以下是代码:

mysql_query("SELECT * from tv,movies WHERE hash='123'");

所以现在我想要从电视和电影中调用哈希的列来从哈希数中得到结果。


我在电视和电影中没有相同的列号。

确保电视中不存在哈希,然后转到电影。

4 个答案:

答案 0 :(得分:1)

将其中一个包含category字段的表格。

这是设计数据库的唯一正确方法。

答案 1 :(得分:0)

SELECT fieldName1 FROM table1 WHERE hash='123'
 UNION
SELECT fieldName1 FROM table2 WHERE hash='123'
 UNION
SELECT fieldName1 FROM table3 WHERE hash='123';

答案 2 :(得分:0)

您必须在两个表中选择相同数量的列

SELECT tvcol1 as field1,tvcol2 as field2 from tv WHERE hash='123' 
UNION 
SELECT moviescol1 as field1,moviescol2 as field2  from movies WHERE hash='123'

答案 3 :(得分:0)

根据您对@ Bryan的答案的评论,在行之间进行阅读,您需要tv表中的所有列,但如果找不到,请从movies表中选择所有列。在这种情况下,使用两个不同的查询:

$result = mysql_query("SELECT * FROM tv WHERE hash = '123'") or die( mysql_error() );

if( mysql_num_rows( $result ) == 0 ) {
    $result = mysql_query("SELECT * FROM movies WHERE hash = '123'") or die( mysql_error() );
}

现在$result包含来自tvmovies表的列,如果在其中任何一个中找不到散列,则为false