我有6個表,其中所有列的名稱是相同的。現在我只想選擇那些新='1'的表。從兩個或更多的SQL表中選擇,其中有一些列名
例如:
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 因此,如果客戶去新的電影頁面,我想從所有的表,其中搜索所有電影新='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';但如果還不算太晚,我會改變你的表格結構。你不應該需要6個名字完全相同的表;而是創建一個表並添加一個或多個列來區分將在不同表中進行的內容。對於一個簡單的例子:一個「類型」字符串,你可以在其中存儲「3d」,「english」,「hindi」等字符串;一個更好的例子就是一個'movie_types'表,這個'movies'表通過'多對多'關係引用(通過'movie_movie_types'表),允許你表示一個既是「hindi」又是「 3D」。 – Uueerdo
你第一次失敗是因爲如果只有一個表得到'新'記錄,其他人將沒有新記錄並且什麼也不返回,因爲'和'要求條件在所有檢查中都是真的,而不是一個。也許你想要'或'而不是。但即使如此,你正在做一個笛卡爾產品加入的表格,你會得到各種令人毛骨悚然的結果。第二個失敗,因爲'新'不是唯一的標識符。 –
另外,爲什麼有'date'字段保存十進制值? – Uueerdo