Добрый день. Помогите, пожалуйста, разобраться с запросом. Ситуация такова: в базе имеется 2 таблицы с одинаковыми полями. К примеру, в таблице Table1
есть поле NAME
, и в Table2
есть поле NAME
. Каким образом можно вывести те строки из таблицы Table1, у которых значение поля NAME
совпадает со значением поля NAME
у Table2
?
Пытался вывести таким образом:
SELECT * FROM table1 WHERE name = (SELECT name FROM table2)
Не работает, ибо подзапрос возвращает несколько строк, а не одну. Как быть?
Почитайте что такое inner
и left/right join
'ы. В вашем случае надо что-то типа такого:
SELECT table1.*, table2.* FROM table1
inner join TABLE2 on table1.name=table2.name
P.S. Могу чутка ошибиться в синтаксисе - давно не сиквелил :)
Про джоины всё правильно, но всё же предложу два альтернативных варианта:
1: SELECT * FROM table1 WHERE name IN (SELECT name FROM table2);
2: SELECT a.*, b.* FROM table1 a, table2 b WHERE a.name = b.name;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Помогите научиться решать задачи на SQL, вот я приведу пример 1 задачи, дайте исходники, чтобы я понял как их решать**Отчет за март 2011 года, в котором...
Скажите что не так,
Попробовал сделать соединение через php, ошибок не вылезло, но и базы и таблицы не появилосьВот код:
Как вывести из базы данных шесть самых больших значений? Почему то вот это не работает и выводит в виде?