У меня в основном та же проблема, что и здесь:
Представление SQL: соединение таблиц без что приводит к дублированию данных в каждой строке?
За исключением этого вопроса, он использовал SQL, а я использую mysql. Мне интересно, возможен ли такой же запрос в mysql. Если да, то может у меня неправильный синтаксис?
Я пытаюсь сделать что-то вроде
select a.name as account_Name,
p.description as property_DESCRIPTION,
p.address as property_ADDRESS,
null as vehicles_DESCRIPTION,
null as vehicles_MAKE,
null as vehicles_MODEL
from Accounts a
inner join Properties p
on a.accountid = p.accountid
UNION ALL
select a.name as account_Name,
null as property_DESCRIPTION,
null as property_ADDRESS,
v.description as vehicles_DESCRIPTION,
v.make as vehicles_MAKE,
v.model as vehicles_MODEL
from Accounts a
inner join vehicles v
on a.accountid = v.accountid
Вот мой фактический код:
SELECT user.first_name, user.last_name, upi.image_id, NULL AS friends.friend_user_id FROM user
INNER JOIN user_profile_images as upi ON (user.user_id = upi.user_id)
UNION
SELECT user.first_name, user.last_name, NULL AS upi.image_id, friends.friend_user_id FROM user
INNER JOIN friends ON (user.user_id = friends.user_id)
WHERE user.user_id = '$profile_id'
где у меня есть 3 таблицы: пользователь, user_profile_images и друзья. И user_profile_images, и друзья связаны с пользователем через user_id. Таким образом, у пользователя может быть несколько изображений профиля, а также несколько записей друзей. Я могу выложить таблицы диаграмм, если это не имеет смысла. Но то, что я хочу, - это в основном представление всей информации с полями NULL, если они не относятся к общему представлению.
Если я делаю запрос с двумя таблицами, либо с пользователем и user_profile_images, либо с пользователем и друзьями, я получаю желаемые результаты, но добавление третьей таблицы дает мне повторяющиеся строки.
union all
, вы заставляете mysql возвращать все строки из объединенных запросов. удалите ключевое словоall
, и mysql удалит для вас повторяющиеся строки. - person Marc B   schedule 12.03.2012SELECT
естьupi.image_id
, но не в первом. - person mathematical.coffee   schedule 12.03.2012$con->query('...') or die($con->error)
(илиmysqli_query(...) or die(mysqli_error(...))
), чтобы мы могли понять, в чем ошибка — в MySQL или в PHP, и в чем именно ошибка. . - person mathematical.coffee   schedule 12.03.2012friend
иuser_id
? то естьfriend user_id
->friend_user_id
? Кроме того, вам на самом деле не нужны эти имена таблиц в псевдонимах столбцов — подойдутNULL AS image_id
иNULL AS friend_user_id
. - person mathematical.coffee   schedule 12.03.2012