#php #mysql
#php #mysql
Вопрос:
У меня есть три таблицы в моей базе данных MySQL, и я хочу извлечь все данные из каждой из них и сохранить их в соответствующем массиве. Как я могу это сделать, не используя три отдельных SQL-запроса, например
$table1_array = "SELECT fid FROM table1" ...;
$table2_array = "SELECT * FROM table2" ...;
$table3_array = "SELECT * FROM table2" ...;
В идеале мне нужно выполнить один запрос, чтобы поддерживать производительность.
Редактировать:
Вот разбивка моей структуры таблицы:
table_photos
pid, aid, caption, src, filename
table_albums
aid, created, count, name
table_feed
fid, timestamp, message, link, caption, description, type, name, pic_src, type,
filename
Спасибо
Комментарии:
1. Таблицы не имеют общих похожих столбцов и не особенно связаны между собой.
2. @lowe_22 Если таблицы имеют разные структуры, имеют ли они, по крайней мере, одинаковое количество столбцов или почти такое же?
3. Честно говоря, я бы просто сделал это как три отдельных запроса. Самыми дорогостоящими операциями будут циклы выборки. Однако я бы даже не стал беспокоиться об этом, пока это не станет проблемой. Если он не масштабируется и вы не можете удовлетворить свои требования к производительности, тогда побеспокойтесь о том, чтобы сделать что-то сложное с запросом. Но подождите, пока не появятся убедительные доказательства плохой производительности, прежде чем делать что-то странное с ОБЪЕДИНЕНИЕМ трех совершенно не связанных таблиц.
4. @Джейсон Маккрири, я не был уверен, спасибо 🙂 попробуйте с
JOIN
помощью илиCROSS JOIN
… Если вы не можете объединить их «обычным» способом, это означает, что вы, вероятно, делаете это неправильно.5.
UNION
будет использоваться, когда количество столбцов равно, что здесь не так.
Ответ №1:
table_photos.aid
похоже, это ключ foriegn к table_albums.aid
. Вы можете объединить первые две таблицы следующим образом
SELECT * FROM table_photos
JOIN table_albums USING(aid)
Но я не вижу никаких очевидных связей с третьей таблицей table_feed
, поэтому, возможно, вам следует обработать этот запрос, выполнив цикл в скрипте.
Первым шагом будет выяснить, как связаны эти данные, затем вторым шагом будет написать код для формирования структуры данных.