#php #mysql #sql
#php #mysql #sql
Вопрос:
Я хочу выбрать один и тот же столбец из 3 таблиц и получить строки из этого одного столбца.
Вот код:
mysql_query("SELECT * from tv,movies WHERE hash='123'");
Итак, теперь я хочу, чтобы столбец с именем hash из телевизора и фильмов выдавал результат по хэш-номеру.
У меня нет одинакового количества столбцов на телевидении и в фильмах.
Убедитесь, что хэш не существует в tv, затем перейдите к movies.
Комментарии:
1. Какой язык вы используете? Это PHP? Вероятно, вам следует пометить этот вопрос хотя бы тегами sql и php.
2. @Occulta да
mysql_query
, это функция PHP, я переназначил вопрос правильно.3. я использую php с mysql
Ответ №1:
Сделайте это одной таблицей с category
полем в ней.
это единственный правильный способ проектирования базы данных.
Ответ №2:
SELECT fieldName1 FROM table1 WHERE hash='123'
UNION
SELECT fieldName1 FROM table2 WHERE hash='123'
UNION
SELECT fieldName1 FROM table3 WHERE hash='123';
Комментарии:
1. но у меня нет одинакового количества столбцов как на телевидении, так и в фильмах
2. @Ahmed Jalal: вы сказали: «Я хочу выбрать один и тот же столбец», и этот код SQL действительно выбирает один столбец, почему важно, есть ли у вас одинаковое количество столбцов в обоих
tv
иmovies
?3. это не сработало, я проверил это. когда я извлекаю массивы, он не находит другие столбцы
4. как мы выбираем либо из телевизора, либо из фильмов, например, если хэш существует в tv, продолжайте, а если нет, переходите к фильмам
Ответ №3:
Вы должны выбрать равное количество столбцов в обеих таблицах
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'
Ответ №4:
Читая между строк и основываясь на ваших комментариях к ответу @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
имеет столбцы из tv
movies
таблицы or или, или false
, если хэш не был найден ни в одной из них.