1
Вот таблицы:Выберите таблицу на основе значения из другой таблицы
info
+----------------------+
|userid|job_id|position|
+----------------------+
|1 |1 |2 |
|2 |2 |1 |
+----------------------+
job
+----------------+
|job_id|job_title|
+----------------+
|1 |army |
|2 |grocer |
+----------------+
army
+-----------------------+
|position|title |income|
+------------------------+
|1 |private |$125 |
|2 |corporal|$175 |
+------------------------+
grocer
+-----------------------+
|position|title |income|
+-----------------------+
|1 |bagger |$100 |
|2 |cashier|$120 |
+-----------------------+
Я хотел бы:
+----------------------------+
|id|job_title|position|income|
+----------------------------+
|1 |army |corporal|$175 |
+----------------------------+
для когда идентификатор 1 опознан и
+----------------------------+
|id|job_title|position|income|
+----------------------------+
|2 |grocer |bagger |$100 |
+----------------------------+
за все время идентификатор 2 регистрируется в
так,
if job_title=army
then select table army and info.position=army.position
if job_title=grocer
then select table grocer and info.position=grocer.position
я наклоняю вполне понять это. Я попытался
SELECT * FROM info,job,army,grocer
WHERE userid='$userid' and passid='$passid' and info.job_id=job.job_id;
, который работает для job_title
, но не title
ни income
. Так что я попытался
SELECT * FROM info,job,army,grocer
WHERE userid='$userid' and passid='$passid' and info.job_id=job.job_id and info.position=army.position;
который работал ид 1 но не идентификатор 2. Мне нужно что-то вроде
SELECT * FROM info,job,army,grocer
WHERE userid='$userid' and passid='$passid' and info.job_id=job.job_id and info.position=_.position;
где _ либо армии или бакалейщик, на основе идентификатора пользователя и position
нормализует свои данные и все такие проблемы будут уходить , –
Не принимайте это неправильно, но лучший способ сделать то, что вы просите, совершенно противоречит тому, что вы настроили. В идеале вы должны создать таблицу 'position', которая объединяет все позиции и присваивает« внешний ключ »заданию, которому назначен каждый пользователь. Разбивание ваших таблиц, которые связаны каким-то образом, вызывает только такие неприятности, которые, в свою очередь, также могут вызывать очень медленные и дорогостоящие запросы. Посмотрите * нормализацию базы данных * для получения дополнительной информации. – RhapX