Справка по MySQL SELECT JOIN - PullRequest
       37

Справка по MySQL SELECT JOIN

1 голос
/ 28 января 2012

У меня есть некоторое количество таблиц. В каждой таблице есть поле id (int). В каждой таблице может быть несколько записей с одинаковым идентификатором. Например:

id1 val1 id1 val2 id1 val3
id1 val4 id1 val5 id1 val6

Мне нужен запрос на выбор, который мне дает

val1 val2 val3
val4 val5 val6

Я пытался

SELECT * FROM  table1
INNER JOIN table2 ON table1.ban_id = table2.ban_id
INNER JOIN table3 ON table1.ban_id = table3.ban_id
INNER JOIN table4 ON table1.ban_id = table4.ban_id
INNER JOIN table5 ON table1.ban_id = table5.ban_id
INNER JOIN table6 ON table1.ban_id = table6.ban_id

И, насколько я понимаю, это дает мне все возможные перестановки моих ценностей.

Update1
Позвольте мне получить больше информации. Я пишу приложение для пользователей-ведьм, которые могут быть заблокированы несколькими способами, например ник ip guid (некоторый идентификатор, похожий на guid)
Также в базе данных причины этого бана хранятся. Таким образом, существует ситуация, когда существует одна запись с идентификатором guid ip, но несколько причин или несколько никнеймов отвечают на один и тот же идентификатор.
http://pastebin.com/HQs4XxDm - вот структура таблиц

1 Ответ

1 голос
/ 28 января 2012

Что вы получаете в данный момент?Проще помочь, если вы дадите некоторую отладочную информацию.

Я ожидаю, что у вас есть проблема с неоднозначными именами столбцов.Попробуйте

SELECT 
`table1`.`id1` AS `t1_id1`, 
`table2`.`id1` AS `t2_id1`, 
`table3`.`id1` AS `t3_id1`, 
`table4`.`id1` AS `t4_id1`, 
`table5`.`id1` AS `t5_id1`, 
`table6`.`id1` AS `t6_id1`
FROM table1 
INNER JOIN table2 ON table1.ban_id=table2.ban_id
INNER JOIN table3 ON table1.ban_id=table3.ban_id
INNER JOIN table4 ON table1.ban_id=table4.ban_id
INNER JOIN table5 ON table1.ban_id=table5.ban_id
INNER JOIN table6 ON table1.ban_id=table6.ban_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...