2015-09-08 2 views
0

Я знаю, что этот вопрос является очень распространенным явлением на стеке, но я не могу найти ответ или фрагмент кода, который на самом деле решает мою проблему ...Регистрация в один столбец другой таблицы

У меня есть два таблицы, accounts и orders. Я хочу написать инструкцию SQL для того, чтобы вытащить Order ID, Date, Total и Status с сайта orders, а также Username с сайта accounts.

Заявление было бы что-то вроде этого:

$ohsql = "select * from orders where Username = '". $login_session ."'"; 

Очевидно Username будет поступать из accounts таблицы, но главное есть. Мне не хватает join, так как я об этом не знаю!

+0

выберите ... из t1 JOIN t2 on t1.col = t2.col где ... – jarlh

+0

https://dev.mysql.com/doc/refman/5.0/ru/join.html –

+0

'$ ohsq l = "select * from orders, accounts, где Username = '". $ login_session. "и accounts.OrderID = orders.OrderID"; '- вы можете добавить больше столбцов в предложение where, если OrderID не является подходящим соединением (возможно, дата) – Giles

ответ

2

Вам нужно «связать» две таблицы. Для этого сделайте что-нибудь вроде:
- добавьте столбец accountid в таблицу заказов; поэтому это говорит нам, какой заказ принадлежит пользователю. Затем мы используем эту информацию в нашем JOIN.

Легкий способ сделать это в 2-х запросов:

// get the id value of the username 
$id = select id from accounts table where username = $login_session 

// use that in the JOIN 
select * from orders JOIN accounts ON orders.accountid = accounts.id where accounts.id = $id 
+0

есть сообщение об ошибке? Что такое var_dump из $ row и $ id? –

+0

Извините, мои комментарии не очень хороши из-за формата кода ... –

0

Предполагая, что ваша таблица заказов содержит ACCOUNTID и вашу таблицу, содержащую использование имени пользователя следующий запрос

$ohsql = "select o.*, a.username from orders o 
INNER JOIN accounts a ON a.id = o.accountId 
WHERE a.username = '". $login_session ."'"; 

Позвольте мне знать, если вы сталкиваетесь с какой-либо проблемой