Mysql несколько выбирает и присоединяется - PullRequest
0 голосов
/ 07 декабря 2010

У меня есть этот запрос:

SELECT suppliers.*, porders.om_quote_no, orders.project_ref 
FROM suppliers, porders, orders 
WHERE suppliers.supp_short_code = suppliers.supp_short_code

porders - это таблица с supp_short_code и om_quote_no, orders - это таблица с supp_short_code и project_ref, suppliers содержит все детали, включая столбец supp_short_code Я пытаюсь добраться до точки, где кто-то может увидеть один supp_short_code и посмотреть, какие приказы были размещены против него. То есть. supp_short_code является общим столбцом в каждой таблице!

Возможно ли это ...?

Ответы [ 3 ]

2 голосов
/ 07 декабря 2010
SELECT s.*,p.om_quote_no,o.project_ref FROM 
orders AS ord,porders AS p,suppliers AS s WHERE o.supp_short_code = p.supp_short_code AND      o.supp_short_code = s.supp_short_code

Спасибо.

0 голосов
/ 07 декабря 2010

Возможно, имеет смысл сделать два отдельных оператора выбора:

SELECT suppliers.*, porders.om_quote_no
FROM suppliers, porders
WHERE suppliers.supp_short_code = porders.supp_short_code

SELECT suppliers.*, orders.project_ref 
FROM suppliers, orders 
WHERE suppliers.supp_short_code = orders.supp_short_code

Если porders.om_quote_no и orders.project_ref относятся к одному и тому же типу, вы можете объединить два результата с помощью UNION.

0 голосов
/ 07 декабря 2010

Не знаю, правильно ли я понял вашу проблему.Особенно ваше предложение WHERE смущает меня.

Как насчет этого:

SELECT 
s.*,
p.om_quote_no,
o.project_ref
FROM
orders o
INNER JOIN porders p ON o.supp_short_code = p.supp_short_code
INNER JOIN suppliers s ON o.supp_short_code = s.supp_short_code
...