Запрос разные таблицы php

Выборка из двух таблиц в одном запросе

Есть две связанные таблицы, поле id в одной из которых является внешним ключом для второй таблицы.
Мне нужно выбрать информацию из второй таблицы и отобразить информацию и ту, что по данному id хранится в первой таблице.

Я делаю это двумя запросами, сначала обращаюсь к одной таблице из цикла:

mysql_query("SELECT `id` FROM table WHERE `name`=$value");

А потом полученный id отправляю во второй запрос.
Но мне сказали, что можно сделать это в одном запросе. Очень хотелось бы узнать, как это правильно записать.

Буду чрезвычайно благодарен!

Нужно получить данные из двух таблиц в одном запросе
Всем привет, уважаемые форумчане. Вобщем есть задачка, точнее: есть таблица 1 news

Удаление с 3 таблиц сразу в одном запросе
Здраствуйте может плохо искал но ненашол как в одном запросе удалить с 3 таблиц дыные в mariadb .

Выборка из двух таблиц.
Доброго дня. Что-то я запутался. Подскажите, пожалуйста. Ситуация следующая. Есть страница.

Выборка из двух таблиц
Здравствуйте. Есть такой вот код запроса: $sql = "SELECT * FROM photo .

SELECT table1.name, table2.fieldname FROM table1 JOIN table2 USING(id)
SELECT table1.name, table2.fieldname FROM table1 JOIN table2 ON table1.cat_id = table2.id

tdmitriiv, Отлично!
Большое спасибо. Так действительно на много удобнее

Добавлено через 8 часов 4 минуты
Товарищи, объясните пожалуйста, что не верно в данном запросе:

SELECT table1.*, table2.name FROM table1 JOIN table1 ON table2.id = table1.columnN WHERE table1.id=$id LIMIT 1

Источник

Вытянуть данные из двух связанных таблиц

Надо вывести на одну страницу данные по фирме бианка и привезанные к ней должности: менеджер, директор.

Приблизительно должно выглядить так на странице:
Фирма — Бианка
Коментарий — хорошая фирма
Вакансии: менеджер, директор

Не понимаю как делать SELECT. КАК это сделать ? Спасибо

Очень нужно быстро. Вывести данные из 3-х связанных таблиц
Необходимо выыести данные из 3-таблиц: users ID login password email name surname date

Получить данные связанных таблиц отдельными подмассивами
Есть 3 связанные таблицы. Как из них достать данные отдельными подмассивами? $result =.

Вывести данные из двух связанных таблиц
Добрый день,пожалуйста, помогите мне у меня 2 таблицы с товарами магазина,первая таблица это.

Как редактировать данные из двух связанных таблиц?
компонент fdquery. имеются данные таблицы l2,l3. в l2 столбцы cтрана,город,ид. в l3 столбец.

Эксперт PHP

$id_firm = 15; $firm = mysql_query('SELECT * FROM `firm` WHERE `id_firm` = ' . $id_firm); $vacancies = mysql_query('SELECT * FROM `vakans` WHERE `id_firm` = ' . $id_firm);

Можно объединить в один запрос с помощью JOIN, но тогда информация о компании будет в каждой строке, избыточно и не очень удобно с этим работать.

SELECT * FROM `firm` JOIN `vakans` ON firm.id_firm=vakans.id_firm WHERE `name_firm`='Бианка';

прошу прощения, не правильно дал задачу. Существует ещё третья таблица — справочник должностей, там где и лежат: менеджер и директор.

таблица: firm
id_firm (primiry key) 1
name_firm Бианка

таблица: vakans
id_vak (primiry key) 1 2
text какой то коментарий
id_firm (forign key) 1 1
id_dol (forign key) 2 3
(две записи в таблице vakans привязанные к фирме бианка в таблице firm — id_firm)
(две записи в таблице vakans привязанные к фирме бианка в таблице dolzgnost — id_dol)

таблица — dolzgnost
id_dol (primiry key) — 1 2
name_dol менеджер директор
(менеджер директор

Надо вывести на одну страницу данные по фирме бианка и привезанные к ней должности: менеджер, директор.

Приблизительно должно выглядить так на странице:
Фирма — Бианка
Вакансии:
менеджер
директор

ТО есть на страницу надо вывести название фирмы бианка (таблица firm ), две вакансии (таблица vakans) и должности относящиеся к каждой вакансии (таблица dolzgnost)

Добавлено через 7 минут
Изза того что не верно описал проблему , не могу вывести name_dol из третей таблицы

Добавлено через 19 минут
К сожалению не получается

Источник

Как на PHP составить MySQL SELECT из двух таблиц одновременно с 2-мя массивами в запросе и условием?

Всем добрейшего времени суток!
Мучаюсь уже неделю, ничего похожего ни на хабре ни в гугле не нашел.

Этот запрос для формирования новостной ленты из 2х таблиц, сами таблицы очень похожи, разница только в названии одного из полей, формируется новостная лента из постов друзей и постов групп на которые юзер подписан.

Таблицы у меня примерно такие:

Собственно суть.
Нужно сделать запрос на выборку из базы, я грубо говоря разобью запрос на 3 части, чтобы было понятнее что я хочу сделать

Переменные php участвующие в запросе:

$array1 = 1, 13, 5, 4, 86, 6, . ; $array1 = 1, 35, 3, 46, 5, 17, . ;

Массивы преобразованы в нужный вид:
$array1 = implode(«, «, $oldarray1);

SELECT * FROM "post" WHERE user_id = IN ( $array1 ) LIMIT 0, 20

Условие поле user_id_posted должно быть равно полю user_id
(если условие в таком случае не возможно, то можно без него)

SELECT * FROM "userpost" WHERE group_id = IN ( $array2 ) LIMIT 0, 20
ORDER BY date (тип datetime) LIMIT 0, 20

На счет LIMIT не знаю как описать правильно, в итоге должно выбраться всего 20 записей, я полагаю что сначала MySQL выбирает 1 запрос — 20 записей, потом 2 запрос — 20 записей, далее сортирует их и возвращает 20 из 40, остальные 20 он выкидывает.
Ну это только в теории.

Буду весьма благодарен за помощь! А то я мучаюсь с этим запросом уже неделю.

Оценить 1 комментарий

Возможно кому пригодится, вот готовый запрос для моего случая, спасибо за помощь egor_nullptr !

(SELECT * FROM `post` WHERE user_id IN($user) AND user_id = userpost_id LIMIT 0, 20) UNION ALL (SELECT * FROM `grouppost` WHERE group_id IN($usergroup) LIMIT 0, 20) ORDER BY data DESC LIMIT 0, 20

egor_nullptr

SELECT * FROM (( SELECT id, user_id_posted, user_id as uid, type, `date`, content FROM "post" WHERE user_id = IN ( $array1 ) AND user_id_posted = user_id LIMIT 20 ) UNION ( SELECT id, user_id_posted, group_id as uid, type, `date`, content FROM "userpost" WHERE group_id = IN ( $array2 ) LIMIT 20 )) ORDER BY `date` LIMIT 20

Создайте в sql fiddle тестовую базу с вашими таблицами и текущим запросом, который не верно отрабатывает. Попробую помочь. Из того что вы описали сложно попробовать построить запрос.

на то они и 2 разные таблицы, так как хранят данные из разных источников, структура у них похожа, за исключением одного поля, именно поэтому их две, а не одна

FanatPHP

Две их не потому что «данные из разных источников», а потому что очередная беспомощная дитятя вообразила, будто программирование — это типа как лепить куличики в песочнице. И неалепила вот этот ужас.

Уважаемый,
Во первых мне 27 лет, я женат и у меня 2 детей, это на счет «дитя»
Во вторых, я оптимизирую корпоративную соц сеть и уменьшаю нагрузку на сервак, ибо все было сделано через одно место (не мною)
В третьих, я не программист, я системный администратор которому не дали денег на новые серваки или на человека который приведет код в порядок, и мне пришлось самому лезть в дебри чтоб хоть как-то снять нагрузку с железа под другие задачи

и наконец: Именно этот запрос снял нагрузку почти в 3 раза

(SELECT * FROM `post` WHERE user_id IN($user) AND user_id = userpost_id LIMIT 0, 20) UNION ALL (SELECT * FROM `grouppost` WHERE group_id IN($usergroup) LIMIT 0, 20) ORDER BY data DESC LIMIT 0, 20

Ах да совсем забыл, таблицы разные, но запрос проходит и делает свое дело, а раньше это было немного по другому, 6 запросов в базу и куча PHP кода который жрал оперативку при сортировке многомерных массивов,

Видимо таков и ваш подход к программированию, раз вы пытаетесь потролить человека который попросил помощи, вместо того чтобы помочь советом. видимо у самого знаний нет.

Источник

Как сделать запрос к двум таблицам и вывести через цикл?

Есть первая таблица(table1),в которой строки принадлежат непосредственно к каждому пользователю, в строке есть 3 ячейки, 1ая- это id пользователя, в остальных двух ячейках различные id к другим таблицам. К примеру, у пользователя c ID 1: во второй ячейке следующие данные :»1,3,4,5,6,7″ и в третьей ячейке: «2,3,4,5,6,12,23».

И есть еще две таблицы(table2,table3), содержащие данные, каждая таблица относится к одной из вышеуказанных ячеек.

Мне нужно сделать запрос к таблице table1 и table2 основываясь на id значений в ячейках в таблице table1.

Т.е нужно выбрать из таблицы table2 все встречающиеся id с ячейкой2 из table1 и выбрать из таблицы table3 с id, которые есть в ячейке 3 из table1.

И после этого вывести в цикле только то, что совпало.

Надеюсь объяснил понятно. Буду очень благодарен за помощь.

Как сделать поиск по двум таблицам?
Доброго времени суток. Может кто подсказать, что не так в запросе: SELECT b.id, b.name, b.author.

Как найти совпадения по двум таблицам и вывести результат в третью?
Здравствуйте. Помогите плз, с екселем не дружусь совсем. Есть две таблицы с ФИО, нужно сравнить их.

Запрос к двум таблицам
Такая проблемка, есть 2 таблицы: t1: c столбцами id,n2,n3,n4,n5 t2: c столбцами n0,id,d1 нужно.

Запрос по двум таблицам
Здравствуйте, помогите пожалуйста составить запрос по двум таблицам, у них одинаковые.

Источник

Читайте также:  Python string escape curly brackets
Оцените статью