[英]Select from two or more sql tables where have some column names
我有6个表,其中所有列的名称都是相同的。 现在,我只想选择new ='1'的那些表。
例如:
Table 1: 3d_movie
+----+------+-----+------+
| id | name | new | date |
+----+------+-----+------+
| 1 |name1 | 0 | 10.00|
| 2 |name1 | 0 | 10.00|
| 3 |name2 | 1 | 10.00|
+----+------+-----+------+
Table 2: english_movie
+----+------+-----+------+
| id | name | new | date |
+----+------+-----+------+
| 1 |name1 | 0 | 10.00|
| 2 |name1 | 1 | 10.00|
| 3 |name2 | 0 | 10.00|
+----+------+-----+------+
Table 3: hindi_movie
+----+------+-----+------+
| id | name | new | date |
+----+------+-----+------+
| 1 |name1 | 1 | 10.00|
| 2 |name1 | 0 | 10.00|
| 3 |name2 | 0 | 10.00|
+----+------+-----+------+
当管理员在他的服务器上添加新电影时,他选择new =1。因此,如果客户端转到新电影页面,我想从new ='1'的所有表中搜索所有电影。
我用这种方法尝试过,但没有用,请帮助我。
Tried 1: $result = mysqli_query($db,"SELECT * FROM 3d_movie,english_movie,hindi_movie WHERE 3d_movie.new='1' and english_movie.new='1' and hindi_movie.new='1 ORDER BY date DESC LIMIT 30");
Tried 2: $result = mysqli_query($db,"SELECT * FROM 3d_movie,english_movie,hindi_movie WHERE new='1' ORDER BY date DESC LIMIT 30");
使用UNION选择
SELECT *
FROM 3d_movie
WHERE new = 1
UNION
SELECT *
FROM 3d_movie
WHERE new = 1
等等
这是最简单的方法,但是将来您应该考虑合并表格并添加一列以标识电影类型:
Table 1: movie
+----+------+-----+------+-------+
| id | name | new | date | genre |
+----+------+-----+------+-------+
| 1 |name1 | 0 | 10.00| 3d |
| 2 |name1 | 0 | 10.00| eng |
| 3 |name2 | 1 | 10.00| hin |
+----+------+-----+------+-------+
您必须使用UNION
构造SQL查询。 请尝试以下查询:
SELECT *
FROM 3D_MOVIE
WHERE NEW = 1
UNION
SELECT *
FROM ENGLISH_MOVIE
WHERE NEW = 1
UNION
SELECT *
FROM HINDI_MOVIE
WHERE NEW = 1
您可以在表之间运行SQL查询以获得所需的输出。 但是,如果可以更改表结构,则可以更好地解决您的问题。 除了保留多个表,您还可以简单地添加另一列(例如moview_type
或category
,并将所有电影列表放在同一表中。 因此您的表将如下所示:
+----+------+-----+------+----------+
| id | name | new | date | category |
+----+------+-----+------+----------+
| 1 |name1 | 0 | 10.00| 3d |
| 2 |name1 | 0 | 10.00| English |
| 3 |name2 | 1 | 10.00| Hindi |
+----+------+-----+------+----------+
这样,如果您有新的电影类型,则不必添加新表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.