Я новичок в SQL и пытаюсь лучше понять синтаксис отображения данных из двух таблиц. Я прочитал много уроков ( http://databases.about.com/od/sql/l/aajoins2.htm ) но я все еще немного туманно на эту тему.
Мое желаемое поведение — отображать данные из двух таблиц SQL в одной HTML-таблице. Это было бы просто, за исключением того, что в таблице 2 хранится еще несколько фрагментов информации. Вот данные, хранящиеся в каждой таблице.
Таблица 1 (обучение по возврату)
-Дата отправки, ID, имя клиента, имя продукта, _продукт_состояние
Таблица 2
-Дата отправки, ID, имя клиента, имя продукта, _продукт_условия, тип_клуба, club_flex, club_loft, club_hand
Я успешно использовал объединение для отображения совпадающих данных строк из двух таблиц, но мне также нужно отобразить club_type, club_flex, club_loft и club_hand из второй таблицы. Когда я подключаю его, ничего не отображается.
$result = mysqli_query($con,"SELECT SubmitDate, ID, customer_name, product_name, product_condition
FROM trainingaidreturns
UNION
SELECT SubmitDate, ID, customer_name, product_name, product_condition
FROM clubreturns");
И вот что мне по сути нужен код, чтобы сделать.
$result = mysqli_query($con,"SELECT SubmitDate, ID, customer_name, product_name, product_condition
FROM trainingaidreturns
UNION
SELECT SubmitDate, ID, customer_name, product_name, product_condition, club_type, club_hand, club_flex, club_loft
FROM clubreturns");
Я думаю, что мне нужно использовать соединение, но я не понимаю синтаксис. Если бы кто-нибудь мог указать мне правильное направление, я был бы очень признателен!
Если бы вы запустили один и тот же запрос в редакторе запросов, вы бы получили сообщение об ошибке чего-то вроде «столбцы и типы данных для столбцов должны совпадать на обоих концах вашего объединения».
чтобы обойти это, вы можете изменить:
$result = mysqli_query($con,"SELECT SubmitDate, ID, customer_name, product_name, product_condition
FROM trainingaidreturns
UNION
SELECT SubmitDate, ID, customer_name, product_name, product_condition, club_type, club_hand, club_flex, club_loft
FROM clubreturns");
чтобы:
$result = mysqli_query($con, "SELECT SubmitDate, ID, customer_name, product_name, product_condition, club_type, club_hand, club_flex, club_loft
FROM clubreturns
UNION
SELECT SubmitDate, ID, customer_name, product_name, product_condition, null, null, null, null
FROM trainingaidreturns");
или похожие. В основном это делает «заполнитель / нулевые» значения в столбцах, которые не соответствуют таблице в таблицу
РЕДАКТИРОВАТЬ:
вот скрипка, демонстрирующая концепцию: http://sqlfiddle.com/#!2/4a152/1
Других решений пока нет …